如何获取/ proc/[pid]/status的信息

Bio*_*441 6 linux system-calls

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

msw*_*msw 6

/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
...
Run Code Online (Sandbox Code Playgroud)

这与像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) */
    ...
};
Run Code Online (Sandbox Code Playgroud)

如果你想要一个更加机器可读的版本,/proc/pid/status你可以使用词法更简单stat,statmproc(5)所述