【问题标题】:How to get information of /proc/[pid]/status如何获取 /proc/[pid]/status 的信息
【发布时间】:2015-12-15 19:20:39
【问题描述】:

是否有一个已定义的结构用于为特定进程获取此文件的每个字段而不是解析文件?

【问题讨论】:

标签: linux system-calls


【解决方案1】:

创建/proc/pid 伪文件系统是为了让其他程序可以访问大量内核数据,而不受二进制结构的约束。而/proc/pid/status 旨在

以更易于人类解析的格式提供 /proc/[pid]/stat 和 /proc/[pid]/statm 中的大部分信息。这是一个例子:

$ cat /proc/$$/status
Name:   bash
State:  S (sleeping)
Tgid:   3515
Pid:    3515
PPid:   3452
...

这与像 stat(2) 这样的更老的机制形成对比,后者需要像这样的二进制结构

struct stat {
    dev_t     st_dev;     /* ID of device containing file */
    ino_t     st_ino;     /* inode number */
    mode_t    st_mode;    /* protection */
    nlink_t   st_nlink;   /* number of hard links */
    uid_t     st_uid;     /* user ID of owner */
    gid_t     st_gid;     /* group ID of owner */
    dev_t     st_rdev;    /* device ID (if special file) */
    ...
};

如果您想要更机器可读的/proc/pid/status 版本,您可以使用proc(5) 中所述的词法更简单的statstatm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 2017-12-31
    • 2016-12-17
    • 2014-11-21
    • 1970-01-01
    • 2016-06-16
    • 2018-02-13
    相关资源
    最近更新 更多