Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个程序,它在某处泄漏了文件描述符,所以我想添加一个监视器线程来检测进程打开 fds,如果 fd 是 "PIPE" ,我将关闭它。我可以使用 lsof -p 或 cat /proc/pid/fd 来获取进程号,我也可以使用 grep 来过滤掉 TYPE,但我想知道 python 中是否有可以使用的内置函数获取文件描述符的类型?像这样的东西:
定义 getFdType(fd)
您可以readlink在描述符上使用。
readlink
如果结果不是一个文件,那么它就是一个管道。您还可以进一步运行stat:
stat
在某些 Unix 系统(例如 Linux)上,以下属性也可能可用: st_blocks- 为文件分配的 512 字节块的数量 st_blksize- 文件系统块大小以实现高效的文件系统 I/O st_rdev- 设备类型(如果是 inode 设备) st_flags- 用户定义的文件标志
在某些 Unix 系统(例如 Linux)上,以下属性也可能可用:
st_blocks- 为文件分配的 512 字节块的数量
st_blocks
st_blksize- 文件系统块大小以实现高效的文件系统 I/O
st_blksize
st_rdev- 设备类型(如果是 inode 设备)
st_rdev
st_flags- 用户定义的文件标志
st_flags