【问题标题】:Accepted safe/future-proof way to parse /proc/%d/stat?接受解析/proc/%d/stat 的安全/面向未来的方法?
【发布时间】:2023-03-10 17:11:01
【问题描述】:

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

【问题讨论】:

    标签: c linux parsing procfs


    【解决方案1】:

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

    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 ") "
    

    【讨论】:

    • 谢谢!我认为引用的答案很重要。 +1 并被接受。
    猜你喜欢
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    相关资源
    最近更新 更多