是否有一种定义好的结构,可以获取特定进程的文件中每个字段而不是解析文件?
/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
版本,可以使用词法更简单的stat
和statm
,如proc(5)中所述。
libprocps
。 - gavv