什么是文件描述符?

519 阅读1分钟

文件描述符(File Descriptor,FD)是Linux系统中用于标识打开文件的整数。

文件描述符是由内核分配,只在一个进程内部有效,两个不同进程可以使用同样的文件描述符。不同进程中基于同一个描述符共享文件是不可能的。

在Linux系统中查看某个进程的描述符,方式如下

其中,描述符0代表标准输入,描述符1代表标准输出,描述符2代表标准错误。

文件描述符、打开的文件句柄以及i-node之间的关系如下图:

说明:

  1. 一个进程的多个fd可以指向同一个打开文件句柄;多个打开文件句柄可以指向同一个i-node。
  2. 同一个进程的不同文件描述符可以指向同一个文件;不同进程可以拥有相同的文件描述符;不同进程的同一个文件描述符可以指向不同的文件(一般也是这样,除了 0、1、2 这三个特殊的文件);不同进程的不同文件描述符也可以指向同一个文件。

技术文章持续更新,请大家多多关注呀~~
搜索微信公众号,关注我【 帽儿山的枪手 】