我希望能从/proc
目录中检索一些进程信息,我的问题是:在/proc/PID
目录中的文件是否有标准格式?
例如,proc/PID/status
文件的第一行为Name:'\t'ProcName
。我是否可以在其他地方遇到用空格代替\t
的此类文件呢?
/proc
文档,可以在Linux源代码中,在Documentation/filesystems/proc.txt
中找到。如果要使用procfs进行工作,这应该是您首先查看的地方。不幸的是,据我所知,它没有提到确切的记录格式。procps
源代码(也就是提供ps
工具的软件包)。在那里,您可以找到:colon = strchr(S, ':');
if(unlikely(!colon)) break;
if(unlikely(colon[1]!='\t')) break;
ps
依赖于有:
,因此,您可以假设所有当前的Linux内核都使用这种格式。此外,我怀疑小的更改(比如用其他东西替换\t
)是否足以被认为是重要的而打破与旧版本的ps
工具的兼容性。status
文件应该是易读的。因此,程序通常更好地读取设计为面向机器的stat
文件。/proc
格式。procps
附带的libprocps
库,而不是手动读取文件。这样,您就避免了重新发明轮子并直接依赖于特定格式的问题。