【发布时间】:2015-12-15 19:20:39
【问题描述】:
是否有一个已定义的结构用于为特定进程获取此文件的每个字段而不是解析文件?
【问题讨论】:
-
也许
libprocps
标签: linux system-calls
是否有一个已定义的结构用于为特定进程获取此文件的每个字段而不是解析文件?
【问题讨论】:
libprocps
标签: linux system-calls
创建/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) 中所述的词法更简单的stat 和statm
【讨论】: