接受安全/面向未来的方式解析/ proc /%d / stat?

时间:2015-04-27 02:49:03

标签: c linux parsing procfs

Linux /proc/%d/stat文件的第二个字段是括在括号中的命令名,它本身可能包含括号作为命令的一部分。在解析stat伪文件时,处理此问题的正确方法是什么?我的倾向是找到最后的')'(例如,在整个文件内容中使用strrchr),但我担心这可能不会在以后添加新字段。是否有正确处理此问题的文档?

1 个答案:

答案 0 :(得分:2)

寻找最后一个)是最好的方法,并且很可能是面向未来的。

strrchr用于在procps source(ps系列函数,pstopkill等)中进行解析。

S = strchr(S, '(') + 1;
tmp = strrchr(S, ')');
num = tmp - S;
if(unlikely(num >= sizeof P->cmd)) num = sizeof P->cmd - 1;
memcpy(P->cmd, S, num);
P->cmd[num] = '\0';
S = tmp + 2;                 // skip ") "