【问题标题】:What object types that are referenced by file descriptors?文件描述符引用了哪些对象类型?
【发布时间】:2022-01-18 13:43:52
【问题描述】:

我想知道在 Posix/Unix 中哪些对象类型被实现为文件描述符。

我找不到列表,所以我查看了手册页中对 close()select() 的引用(因为它们应该适用于所有 fd 类型)。

我找到的对象类型:

  • 文件

  • 套接字

  • 消息队列

     On Linux, a message queue descriptor is actually a file
     descriptor.  (POSIX does not require such an implementation.)
    
  • 管道

  • 共享内存

还有更多吗?是否有 fd 版本的 pthreads 同步对象(信号量、互斥量、条件)?有清单吗?

【问题讨论】:

  • 每个供应商都可以免费使用文件接口来满足需要。 Linux 还提供了一个带有文件描述符的计时器。这个想法是使用select 在基于事件的循环中与其他 IO 一起使用。每个操作系统用户也可以根据文件描述符编写驱动程序..

标签: linux unix posix file-descriptor


【解决方案1】:

没有使用文件描述符的完整列表,但基于this wiki

在 Unix 和类 Unix 计算机操作系统中,文件描述符(FD,不太常见的 fildes)是 file 或其他输入/输出资源(例如 pipe)的唯一标识符 (handle)或network socket

因此,它包括fileIPCsocket 的所有派生词。需要知道管道是 IPC 的一部分,而 IPC 是利用文件描述符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-11
    • 2011-07-24
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 2017-02-02
    • 2021-06-26
    • 2013-01-10
    相关资源
    最近更新 更多