3

/proc/sysLinux文件描述符的语义是否有文档化的标准?

在他们身上使用是否合适seek(0)

这是一段似乎适用于我的测试的代码:

#!/usr/bin/python
from time import sleep
with open('/proc/sys/fs/file-nr','r') as f:
    while True:
        d = f.readline()
        print d.split()[0]
        f.seek(0)
        sleep(1)

这似乎有效。但是,我想知道这是否是做这些事情的正确方法,或者我是否应该循环open()......read()close()

在这种特殊情况下,我将把它与collectd Python 插件一起使用......所以这个特殊的代码将在一个守护进程中无限期地运行。但是,我对一般问题的答案很感兴趣。

(顺便说一句,是否有一个“打开的文件/索引节点”模块/插件collectd)?

4

1 回答 1

3

是的,对 proc 伪文件系统上的文件使用 lseek(2) 和 fseek(3) 是正确的。不合适的调用将导致错误,因此如果 python seek(可能在下面调用 lseek/fseek)有效,它是合适的。

于 2013-11-13T10:40:10.533 回答