c - 在 C 中获取有关子进程的信息

标签 c linux multithreading

我正在 Linux 机器上用 C 编写程序,我需要获取有关子进程的信息。我正在尝试使用 getrusage(),但似乎无法获得任何有值(value)的信息。在给定子进程 ID 的情况下,有什么方法可以从父进程获取子进程的使用统计信息(以及任何其他信息)?

最佳答案

请注意 getrusage() 的 POSIX 定义清楚地表明您只能获取已终止的子进程的信息,而不能获取仍在运行的子进程的信息。还有一个警告,您必须注意垂死的 child ;如果您忽略 SIGCHLD 信号,您将不会从 getrusage() 为它们获取数据。

如果您需要有关仍在运行的进程的信息,您需要在 /proc 文件系统周围寻找相关子进程的信息;可能没有其他方法可以做到这一点。

关于c - 在 C 中获取有关子进程的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28471405/

相关文章:

linux - CentOS 6.9 yum 和 yum 更新都不起作用

python - 通过 LAN 发送文件的快速可靠的多平台方式

linux - bash 中的 while 循环多个条件有什么问题

c - 我什么时候必须有空?

c - %[^<] (和 friend )在格式化字符串系列中是什么意思?

c - 跨平台使用 void 指针

javascript - 多个 JavaScript worker

java - 如果要同步读,是否还需要同步写?

java - 在Java中的静态 block 中创建线程时导致死锁

内置 "in"算子的Python源码