c - 手动获取Linux文件描述符表信息

标签 c linux linux-kernel file-descriptor

如何获取驻留在与任何打开的文件描述符关联的文件描述符表中的文件描述符标志“fd flags”?我想知道在不使用 fcntl 函数或查看/proc 条目的情况下手动编写代码,或者至少要进一步研究哪些函数和结构。

下图显示给定进程的文件描述符表有一个标志字段和一个文件指针字段。我如何以编程方式访问这些字段?

enter image description here

最佳答案

您可以访问 /proc/PID/fdinfo/FD 文件,其中包含八进制的 flags:

$ cat /proc/$$/fdinfo/0
pos:    0
flags:  0100002
mnt_id: 20

在此示例中,0100002 = O_LARGFILE|O_RDWR

关于c - 手动获取Linux文件描述符表信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46753127/

相关文章:

c - 在 Arduino 运行时向其发送命令

c函数返回静态变量

linux - 对硬件抽象层的说明

linux - 如何连接到在端口中运行的 UDP 守护进程

linux - 来自内核模块的调试堆栈

c - Linux SPARSEMEM 内存模型真的很稀疏吗?

c++ - 谁能举例说明为什么使用 size_t 类型?

c - 是否有可能在运行时获得递归值?

linux - 进程内的线程ID

linux - 在 shell 脚本中通过 fork() 父进程创建子进程