我必须检索进程状态(进程是否正在运行或已停止),其进程ID是从我的c程序(我正在使用linux)中提供的。我计划使用exec命令 并写在下面的陈述
execv(“ps -el | grep | awk'{print $ 2}'”,NULL);
但它没有给我想要的输出。
请告诉我错误的地方。
答案 0 :(得分:3)
/proc/<pid>/stat
中的第三个字段包含进程状态:R
如果正在运行,S
如果正在休眠(还有其他几个,例如D
用于磁盘等待和僵尸的Z
。
答案 1 :(得分:1)
exec调用返回与程序执行是否成功相对应的错误代码。
如果您分叉子进程然后在子进程中执行该命令,则可以使用waitpid调用在父进程中读取其退出状态。
答案 2 :(得分:1)
我怀疑exec是你需要的电话系列。 system(3)可能更理想。