1.8. 我怎样象ps程序一样审视系统的进程?

你真的不该想做这个。

到目前为止,移植性最好的是调用‘popen(pscmd,"r")’并处理它的输出。(pscmd 应当是类似SysV系统上的‘“ps -ef”’,BSD系统有很多可能的显示选项:选 择一个。)

在范例章节有这个问题的两个完整解决方法;一个适用于SunOS 4,它需要root权 限执行并使用‘kvm_*’例程从内核数据结果读取信息;另一种适用于SVR4系统 (包括Sun OS 5),它使用‘/proc’文件系统。

在具有SVR4.2风格‘/proc’的系统上更简单;只要对于每一个感兴趣的进程号从 文件‘/proc/进程号/psinfo’读取一个psinfo_t结构。但是,这种可能是最清晰的方 法也许又是最不得到很好支持的方法。(在FreeBSD的‘/proc’上,你从 ‘/proc/进程号/status’读取一个半未提供文档说明(semi-undocumented)的可打印字 符串;Linux有一些与其类似的东西)