我怎样才能获得文件描述符标志“的fd标志”驻留在与任何打开的文件描述符相关联的文件描述符表?我想知道手动或者至少是功能和结构,而不是使用fcntl函数或查看/ proc中的条目进一步研究编写代码。手动获取关于Linux文件描述符表信息
下图显示给定进程的文件描述符表有一个标志字段和一个文件指针字段。我如何编程访问这些字段?
我怎样才能获得文件描述符标志“的fd标志”驻留在与任何打开的文件描述符相关联的文件描述符表?我想知道手动或者至少是功能和结构,而不是使用fcntl函数或查看/ proc中的条目进一步研究编写代码。手动获取关于Linux文件描述符表信息
下图显示给定进程的文件描述符表有一个标志字段和一个文件指针字段。我如何编程访问这些字段?
您可以访问/proc/PID/fdinfo/FD
文件,其中包含八进制flags
:
$ cat /proc/$$/fdinfo/0
pos: 0
flags: 0100002
mnt_id: 20
在这个例子中,0100002 = O_LARGFILE|O_RDWR
fcntl()
是一个系统调用,而不是 “一库”。这是您检索与文件描述符关联的标志的方式。
刚编辑我的问题,是有可能做到这一点而不查看proc目录? –