Linux /proc/sys/* 伪文件中的 seek(0) 是什么意思?

3

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

在这些文件上使用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的“打开文件/节点”模块/插件?)
1个回答

3

是的,在 proc 伪文件系统上使用 lseek(2) 和 fseek(3) 是正确的。不适当的调用将导致错误,因此如果 Python 的 seek 函数(在下面可能调用 lseek/fseek)起作用,则是合适的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接