Unix 운영체제에서는 모든 것을 file 이라고 한다. Process가 실행될 때 file을 열게 되면 fd값을 받고, 이를 통해서 해당 file에 접근하게 된다. 이러한 fd는 unsigned 값을 갖고, list를 통해서 관리가 된다. 흔히 사용하는 fd의 값은 이러한 list의 index다.
process에서 file을 열게 되면, User File Descriptor Table에서 빈 index를 찾고, 그 값을 return 해준다. 이후, 해당 파일을 사용해야 할 경우 이 index 값을 이용하여 접근한다.
여기서, Standard input, output, 그리고 error는 매우 자주 사용되기에, 사용 할때마다 FD table에 오르고, 내리는 것은 자원낭비일 뿐이다. 그러므로, 이들은 fd에서 고정된 값을 갖고, 각각 0, 1, 2의 값을 갖는다.
0 : stdin
1 : stdout
2 : stderr