我正在实现 的替代方案top
,并认为我应该预先分配一个适当大小的缓冲区来保存 的读取内容/proc/PID/stat
。
但是,知道它是一个伪文件系统,其中文件内容将按需生成,是否会简单地声明该文件导致内核执行生成其内容的工作,以便返回文件大小?
答案1
从stat(2)
:
对于目录下的大部分文件
/proc
,字段stat()
中不返回文件大小st_size
;相反,该字段会返回 value0
。
所以,不,它没有,所以似乎不可能准确地分配所需的缓冲区大小。但考虑到这些文件较小且可预测的性质,几 KiB 似乎就足够了。