给出文件描述符号,有没有办法知道它的类型?

时间:2014-01-08 06:54:27

标签: python lsof

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

def getFdType(fd)

1 个答案:

答案 0 :(得分:1)

您可以在描述符上使用readlink

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

  

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

     

st_blocks - 为文件

分配的512字节块数      

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

     

st_rdev - inode设备的设备类型

     

st_flags - 用户定义的文件标志