如何从c程序中检索进程ID的进程状态?

时间:2010-08-17 10:47:11

标签: c linux

我必须检索进程状态(进程是否正在运行或已停止),其进程ID是从我的c程序(我正在使用linux)中提供的。我计划使用exec命令 并写在下面的陈述

execv(“ps -el | grep | awk'{print $ 2}'”,NULL);

但它没有给我想要的输出。

请告诉我错误的地方。

3 个答案:

答案 0 :(得分:3)

/proc/<pid>/stat中的第三个字段包含进程状态:R如果正在运行,S如果正在休眠(还有其他几个,例如D用于磁盘等待和僵尸的Z

答案 1 :(得分:1)

exec调用返回与程序执行是否成功相对应的错误代码。

如果您分叉子进程然后在子进程中执行该命令,则可以使用waitpid调用在父进程中读取其退出状态。

答案 2 :(得分:1)

我怀疑exec是你需要的电话系列。 system(3)可能更理想。