【发布时间】:2015-09-27 02:14:16
【问题描述】:
我一直在尝试这样做一段时间,无论我尝试什么,我都无法让它工作。
我的 C 代码如下所示:
char *const parmList[] = {"ps","-o pid",processID,NULL};
execvp("/bin/ps", parmList);
我做错了什么?
【问题讨论】:
-
processID的类型是什么?如果它是一个包含 PID 的字符串,你会没事的。如果它是一个整数,那么你会遇到问题——它应该是一个字符串;命令的所有参数都是字符串。而且,FWIW,所写的命令可以在 Mac OS X 上运行,但在带有error: improper format list的 Linux 上失败(但在 Linux 上,您可以使用ps -opid,ppid,time,-o和要打印的列列表之间没有空格,或使用两个单独的参数)。