#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main() {
int res = system("ps ax -o pid -o command | grep sudoku | grep gnome > /dev/null");
printf("res = %d \n", res);
return 0;
}
我想看看是否sudoku
是否正在运行,只需检查返回码system()
(或任何其他与此相关的呼吁)。我不希望在任何地方打印任何输出。
我不太明白返回码system()
即使在看过之后man page
Whether sudoku
是否正在运行,我得到res = 0
.
首先,你应该使用WEXITSTATUS(res)
。标准明确规定:
如果 command 不是空指针,system() 将返回
命令语言解释器的终止状态在格式中
由 waitpid() 指定.
我怀疑问题在于该命令实际上成功了(grep 发现了自己)。暂时不要重定向输出:
[cnicutar@fresh ~]$ ./test
989 sh -c ps ax -o pid -o command | grep sudoku | grep gnome
res = 0
So, 因为每个命令都成功执行,返回码将为 0:-)。你可能会有更好的运气pgrep
等等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)