리눅스/유닉스 계열 OS에서 열린 파일, 소켓, 파이프 등의 리소스를 식별하기 위한 정수형 번호이다.
Ex)
그 외의 3부터는 프로세스에서 새로 연 리소스 들이다.
UNIX 철학에는 ‘모든 것이 파일’이라는 원칙이 있습니다.
파일, 소켓 모두 내부적으로 커널 레벨에서 I/O 버퍼와 디스크럽터 테이블을 통해 이뤄집니다. 그래서 소켓도 파일처럼 read(), write(), close() 등의 시스템 콜을 사용할 수 있습니다.
해당되는 파일 디스크럽터를 TCP/IP 소켓과 연관지어서 설명하면 다음과 같습니다.
int listenfd = socket(AF_INET, SOCK_STREAM, 0);
int connfd = accept(listenfd, ...);
read(connfd, buf, MAXLINE);
write(connfd, buf, n);
자세한 내용은 컴퓨터 시스템 10장 정리 내용을 참고해주세요.