伪文件系统的深入解析与应用
1. Solaris /proc 文件系统中的文件访问
在 Solaris 系统里,/proc 文件系统是一个非常重要的伪文件系统,它提供了对进程信息的访问途径。下面通过一个简单的程序来展示如何访问 /proc 中的文件,这个程序也能让我们了解 ps 程序的实现原理。
大部分 ps 程序显示的信息都可以通过 psinfo 文件来获取。读取这个文件会返回基于 psinfo 结构的数据。以下是一个示例程序,它以进程 ID 作为参数,读取对应进程的 psinfo 信息并显示部分内容:
#include <fcntl.h>
#include <procfs.h>
main(int argc, char *argv[])
{
struct psinfo ps;
char fname[256];
int fd;
sprintf(fname, "/proc/%s/psinfo", argv[1]);
fd = open(fname, O_RDONLY);
read(fd, (char *)&ps, sizeof(struct psinfo));
printf("UID\tPID\tPPID\tCMD\n");
printf("%d\t%d\t%d\t%s\n",
ps.pr_uid, ps.pr_pid, ps.pr_ppid, ps.pr_psargs);
}
<
超级会员免费看
订阅专栏 解锁全文
1064

被折叠的 条评论
为什么被折叠?



