C语言 公认的安全/面向未来的解析 /proc/%d/stat 的方法



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

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

strrchr用于解析procps源代码(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] = '';
S = tmp + 2;                 // skip ") "

最新更新