(1) 파일 디스크립터 (File Descriptor)
: 시스템으로 부터 할당받은 파일이나 소켓을 대표하는 정수.

○ 표준입력 및 표준출력도 파일 디스크립터로 표현이 되는데 이들은 프로그램이 시작되면 기본적으로 열리고, 종료 시
  자동으로 닫히게 된다.

- 표준 입력 : Standard Input : File Descriptor 0
- 표준 출력 : Standard Output : File Descriptor 1
- 표준 에러 출력 : Standard Error : File Descriptor 2

※ 따라서 파일 오픈 or 소켓생성 시 부여되는 파일 디스크립터는 3 부터 시작된다.


○ 간단 스토리 이해돕기
: 전화 한 통만 하면 필요한 논문을 복사해 주는 곳이 있다. 그리고 그곳의 단골손님 영수가 있다. 그런데 이 녀석은 매번 똑 같은 논문의 일부분을 복사해 달라고 한다. “아저씨~ ‘고도의 정보화 사회가 되어 가면서, 인간의 삶의 질과 관계된 문제들이 점점 더 그 중요성이 더해짐에 따라 감각, 지각, 사고, 성격, 지능, 적성 등의 인간적 특징들이 고려됐을 때의 인간의 원리에 대한 연구’ 라는 논문 26쪽부터 30쪽까지 복사해 주세요” 이 녀석은 보통 이런 식으로 하루에도 여러 번 주문을 한다. 설상가상으로 말하는 속도도 느린 편이다. 그래서 아저씨가 말씀하시길 “그 논문은 이제부터 너의 18번이다! 그냥 저의 18번 논문 26쪽부터 30쪽까지 복사해 주세요 라고 해라!”영수는 그 이후로도 최소 50자가 넘는 제목의 논문만 복사 주문을 한다. 그 때 마다 아저씨는 논문에 새로운 번호를 할당해 준다(중복되지 않는). 그래야 영수와의 대화 속에서 스트레스를 덜 받을 수 있기 때문이다.

여기서 아저씨는 시스템이고, 영수는 개발자를 의미한다. 그리고 숫자는 파일 디스크립터이고, 논문은 소켓이나 파일을 의미한다. 파일(혹은 소켓)을 생성할 때마다 시스템은 그러한 숫자를 생성해서 건네줄 것이다. 그것이 시스템과 개발자가 편하게 대화하는 방법이 될 테니까!!!

결국 파일 디스크립터란 시스템이 만들어 놓은 것을 가리키기 좋게 하기 위해 시스템이 우리들에게 건네주는 숫자에 지나지 않는다.

by 민트앤라떼 2012. 2. 27. 16:01