728x90

실습 코드에

close(1); <<요런 라인이 있었다..

 

1이 뭐여?

 

알고보니 unistd.h 에서 사용하는 파일디스크립터(file descriptor)의 매크로이당.. ( POSIX API의 일부란다)

 

매크로란 인수형 등의 인자를 쉽게 기억하기(?) 위해

또는 코드 가독성을 올리기위해 사용하는 것...

아래 표의 첫번째칸 값을 넣으나

세번째칸 값을 넣으나 똑같다는 것이다

보통 C에서 대문자로 표현된당..

 

 

고로 close(1) 은

스탠다드 아웃풋 디스크립터를 닫는다 즉, 더이상 본 프로세스에서 표준 출력을 쓰지 않겠다 라는 것이다.

close(0) 은 표준입력을 받지 않겠다는 것이다.

위 세개의 파일 디스크립터, 스트림은 open을 따로 하지 않아도 프로세스 생성 시 자동으로 생성된다.

 

자동으로 생성되는 것에 대한 내용은 여기에 썼었다.. 물론 구글에 더 좋은 글이 많을 것이당

 

2021.10.30 - [프로그래밍 공부/OS] - [Linux] 표준 입력, 표준 출력, 표준 에러 출력, 파일디스크립터

 

[Linux] 표준 입력, 표준 출력, 표준 에러 출력, 파일디스크립터

리눅스 공부하면서... 이해한걸 또 까먹을까봐 내식대로 적어두려함 출처는 학교 리눅스 수업 + 모두를 위한 리눅스 프로그래밍(아오키 미네로, 2018) 이다. 컴퓨터는 기본적으로 1차원 바이너리

holsui.tistory.com

 

 

나는 close(1) 이녀석 행색이 맘에안들어서

close(STDOUT_FILENO) 으로 변경하였따....

 

 

참고자료 : 오늘 날 도와준 위키피디아 땡큐!

 

728x90

+ Recent posts