2013년 9월 3일 화요일

파일 디스크립터(File Descriptor)

I/O 시스템 호출은 파일 디스크립터를 통해 열려 있는 파일을 참조한다.

 파일 디스크립터는 보통 음수가 아닌 작은 정수이며, I/O 대상 파일의 경로명을 인자로 받는

open()을 통해 얻을 수 있다.

(유닉스 시스템은 디바이스를 비롯한 모든 종류의 파일에 I/O를 수행할 때 동일한 시스템 호출open(), read(), write(),close() 등을 사용한다.
 이는 커널이!! 응용 프로그램의 I/O요청을!! 대상 파일이나 디바이스I/O 를 수행하는 파일시스템이나 디바이스 드라이버 동작으로 적절히 해석한다.
  따라서 이 시스템 호출을!! 사용하는 프로그램은 어떤 종류의 파일도 사용할 수 있다.)

보통 프로세스는 셸에서 실행될 때 열려 있는 FD(file descriptor) 3를 물려 받는다.

descriptor 0 은 표준 입력(standard input)   - 프로세스가 입력을 받는 파일
descriptor 1 은 표준 출력(standard output) - 프로세스가 출력을 내보내는 파일
descriptor 2 은 표준 에러(standard error)   - 프로세스가 에러 메시지와 예외/비정상 상태 공지를
출력하는 파일이다.

대화형 쉘이나 프로그램에서 이들 세 descriptor는 stdin, stdout,stderr 파일에 해당된다.

댓글 없음:

댓글 쓰기