Subjects

들어가기 앞서...

1. 파일 디스크립터 (fd: File Descriptor)


1) 파일 디스크립터란?

흔히 유닉스 시스템에 존재하는 모든 것은 파일이라고 한다. 일반적인 정규 파일(Regular File)에서부터 디렉토리(Directory), 소켓(Socket), 파이프(PIPE), 블록 디바이스, 캐릭터 디바이스 등등 모든 객체들은 파일로써 관리된다. 유닉스 시스템에서는 프로세스가 위와 같은 파일들을 접근할 때에 파일 디스크립터 (File Descriptor)라는 개념을 이용한다.

응용 프로세스가 파일을 열거나 생성 하게 되면 정수로 된 파일 디스크립터를 얻게 되는데 이 파일 디스크립터는 이후에 일어나는 모든 파일 동작 즉, 읽기 (read 함수), 쓰기 (write 함수), 파일 동작 제어 (fcntl 함수), 파일 닫기(close 함수)등의 동작에서 그 파일을 가리키는데 사용된다. 0, 1, 2는 프로그램이 메모리를 할당받아 실행될 때 기본적으로 할당되는 파일 디스크립터이다.

2) 기본적으로 할당되는 파일 디스크립터

(위 값들은 매크로로써 정의되어 있으며, unistd.h에서 확인할 수 있다.)