手动获取有关Linux文件描述符表的信息

时间:2017-10-15 08:21:37

标签: c linux linux-kernel file-descriptor

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

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

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以在八进制中访问包含/proc/PID/fdinfo/FD的{​​{1}}文件:

flags

在此示例中,$ cat /proc/$$/fdinfo/0 pos: 0 flags: 0100002 mnt_id: 20

答案 1 :(得分:0)

fcntl()是系统调用,而不是“库”。 检索与文件描述符关联的标志的方式。