转自
文件描述符到底是什么 https://blog.csdn.net/wan13141/article/details/89433379
进程间通信之文件描述符 https://www.cnblogs.com/nufangrensheng/p/3571370.html
一个 Linux 进程启动后,会在内核空间中创建一个 PCB 控制块,PCB 内部有一个文件描述符表(File descriptor table),记录着当前进程所有可用的文件描述符,也即当前进程所有打开的文件。
程序启动时默认打开三个I/O设备文件:标准输入文件stdin,标准输出文件stdout,标准错误输出文件stderr,分别得到文件描述符 0, 1, 2