- 시스템으로부터 할당 받은 파일을 대표하는 음수가 아닌 0과 양수인 정수 값
- 프로세스에서 열린 파일의 목록을 관리하는 테이블의 인덱스
0 : 표준 입력(Standard Input) / STDIN_FILENO
1 : 표준 출력(Standard Output) / STDOUT_FILENO
2 : 표준 에러(Standard Error) / STDERR_FILENO
c언어에서 파일을 열기위해 open함수를 사용한다. open함수는 파일을 열고 열린 파일을 이후의 호출에서 참조할 때 사용하는 파일 디스크립터를 리턴한다.
반환되는 파일 디스크립터는 가용가능한 숫자 중 가장 작은 값이 할당된다.
현재 0, 1, 2는 표준 입력, 표준 출력, 표준 에러로 기본 할당되어 있기 때문에 open함수로 파일을 열면 그 다음 숫자인 3을 반환한다.
만약 다른 파일을 한 번 더 open한다면 4를 반환하게 된다.

파일 디스크립터의 값(fd)는 프로세스가 유지하고 있는 FD Table의 index이다. (왼쪽 그림).
우리가 open함수를 사용해서 myfile.txt를 열어서 파일디스크립터로 3을 할당받았다 해보자. 이 3이라는 숫자는 위에서 말했듯이 file descriptor의 index이고 FD table은 File Table(가운데 그림)의 주소를 갖고 있다.
File Table은 open함수의 인자로 받은 mode정보와 inode Table(오른쪽 그림)의 주소를 갖고 있다.
Inode Table은 파일에 접근하는데 필요한 소유자 그룹, 접근 모드(읽기, 쓰기, 실행 권한), 파일 형태등의 정보를 갖고 있다.
File Descriptor, File Table, Inode Table은 그림과 같이 서로 연결되어 있기에 fd를 통해 파일에 접근할 수 있는 것이다.
p.s. inode란 파일을 기술하는 디스크 상의 데이터 구조로서 파일의 데이터 블록이 디스크 상의 어느 주소에 위치하고 있는지와 같은 파일에 대한 주요 정보를 갖고 있다.