伪文件系统深入解析
1. Solaris /proc 文件系统中的文件访问
在 Solaris 系统里,/proc 文件系统是一个非常重要的伪文件系统,它提供了对进程信息的访问途径。为了展示如何访问 /proc 内的文件,下面给出一个简单的程序,这个程序能让我们了解ps命令的实现原理。ps命令所显示的很多信息都可以通过psinfo文件获取,读取该文件会返回基于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_