【问题标题】:Give a file descriptor number, is there any way to know its type?给一个文件描述符编号,有什么方法可以知道它的类型吗?
【发布时间】:2014-01-08 06:54:26
【问题描述】:

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

def getFdType(fd)

【问题讨论】:

    标签: python lsof


    【解决方案1】:

    您可以在描述符上使用readlink

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

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

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

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

    st_rdev - 如果是 inode 设备,则为设备类型

    st_flags - 用户定义的文件标志

    【讨论】:

      猜你喜欢
      • 2011-12-30
      • 1970-01-01
      • 2014-11-07
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多