여기를 눌러보아요!
흔히 유닉스 시스템에 존재하는 모든 것은 파일이라고 한다. 일반적인 정규 파일
(Regular File)에서부터 디렉토리
(Directory), 소켓
(Socket), 파이프
(PIPE), 블록 디바이스
, 캐릭터 디바이스
등등 모든 객체들은 파일로써 관리된다. 유닉스 시스템에서는 프로세스가 위와 같은 파일들을 접근할 때에 파일 디스크립터 (File Descriptor)
라는 개념을 이용한다.
응용 프로세스가 파일을 열거나 생성 하게 되면 정수로 된 파일 디스크립터를 얻게 되는데 이 파일 디스크립터는 이후에 일어나는 모든 파일 동작 즉, 읽기
(read 함수), 쓰기
(write 함수), 파일 동작 제어
(fcntl 함수), 파일 닫기
(close 함수)등의 동작에서 그 파일을 가리키는데 사용된다. 0, 1, 2
는 프로그램이 메모리를 할당받아 실행될 때 기본적으로 할당되는 파일 디스크립터
이다.
(위 값들은 매크로로써 정의되어 있으며, unistd.h
에서 확인할 수 있다.)