1

我有一个程序,它在某处泄漏了文件描述符,所以我想添加一个监视器线程来检测进程打开 fds,如果 fd 是 "PIPE" ,我将关闭它。我可以使用 lsof -p 或 cat /proc/pid/fd 来获取进程号,我也可以使用 grep 来过滤掉 TYPE,但我想知道 python 中是否有可以使用的内置函数获取文件描述符的类型?像这样的东西:

定义 getFdType(fd)

4

1 回答 1

1

您可以readlink在描述符上使用。

如果结果不是一个文件,那么它就是一个管道。您还可以进一步运行stat

在某些 Unix 系统(例如 Linux)上,以下属性也可能可用:

st_blocks- 为文件分配的 512 字节块的数量

st_blksize- 文件系统块大小以实现高效的文件系统 I/O

st_rdev- 设备类型(如果是 inode 设备)

st_flags- 用户定义的文件标志

于 2014-01-08T07:04:24.553 回答