是否有定义的结构来获取特定进程的此文件的每个字段而不是解析文件?
答案 0 :(得分:5)
创建/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