728x90
실습 코드에
close(1); <<요런 라인이 있었다..
1이 뭐여?
알고보니 unistd.h 에서 사용하는 파일디스크립터(file descriptor)의 매크로이당.. ( POSIX API의 일부란다)
매크로란 인수형 등의 인자를 쉽게 기억하기(?) 위해
또는 코드 가독성을 올리기위해 사용하는 것...
아래 표의 첫번째칸 값을 넣으나
세번째칸 값을 넣으나 똑같다는 것이다
보통 C에서 대문자로 표현된당..
고로 close(1) 은
스탠다드 아웃풋 디스크립터를 닫는다 즉, 더이상 본 프로세스에서 표준 출력을 쓰지 않겠다 라는 것이다.
close(0) 은 표준입력을 받지 않겠다는 것이다.
위 세개의 파일 디스크립터, 스트림은 open을 따로 하지 않아도 프로세스 생성 시 자동으로 생성된다.
자동으로 생성되는 것에 대한 내용은 여기에 썼었다.. 물론 구글에 더 좋은 글이 많을 것이당
2021.10.30 - [프로그래밍 공부/OS] - [Linux] 표준 입력, 표준 출력, 표준 에러 출력, 파일디스크립터
나는 close(1) 이녀석 행색이 맘에안들어서
close(STDOUT_FILENO) 으로 변경하였따....
참고자료 : 오늘 날 도와준 위키피디아 땡큐!
728x90