close(0) 에 대한 질문 입니다.

hyper9의 이미지

지금 보는 Code에,,

int main (int ac, char **av)
{
...
...

system_init();
close(0);

if( ~ )
...
...
}

이렇게 되어 있는데요,,
여기서 close(0)이 하는 역할이 뭘까 해서요..

man close
해서 보니까..
close는 file descriptor를 close하는 거라고 하는데,,
위의 main에서는 아무 file도 open한게 없었거든요..
default로 열려있는 무언가를 닫는 걸까요?

잘 이해가 안되어서 질문 올립니다.
조언 부탁드릴게요 ~

uosarang의 이미지

파일디스크립터 0번,1번,2번은 이미 지정되어 있는 놈들입니다..

머리를 굴려라! 그래야 먹고 산다.

grassman의 이미지

On program startup, the integer file descriptors associated with the streams stdin, stdout, and stderr are 0, 1, and 2, respectively.

앞으로 저 프로그램은 표준 입력을 받지 않겠다는 뜻입니다.

hyper9의 이미지

답변 주신 분들 정말 감사합니다..^^