我在Linux机器上用C编写程序,我需要获取有关子进程的信息。我正在尝试使用getrusage()
,但似乎无法获得任何有价值的信息。在给定子进程ID的情况下,有什么方法可以从父进程获取子进程的使用统计信息(和任何其他信息)吗?
答案 0 :(得分:1)
请注意,getrusage()
的POSIX定义清楚地表明您只能获取已终止的子进程的信息,而不是仍在运行的子进程。还有一个警告,你必须注意垂死的孩子;如果您忽略SIGCHLD信号,则无法从getrusage()
获取数据。
如果您需要有关仍在运行的流程的信息,您需要在/proc
文件系统周围了解相关子项的信息;可能没有其他方法可以做到。
答案 1 :(得分:0)
您可以使用IPC在流程之间进行通信。否则,如果您在孩子终止后只需要信息,则可以使用waitpid()
电话。