使用execvp()来调用Linux ps命令

时间:2015-09-27 00:35:59

标签: c linux exec ps

我正在使用C并尝试使用execvp()启动以下linux命令:

ps -o pid,ppid,time --pid 30008

我现在有以下代码:

char command2[1024];
snprintf(command2, sizeof(command2), "--pid %i", processId);
char *const parmList[] = {"-o pid,ppid,time", command2, NULL};
execvp("/bin/ps", parmList);

但是,它无法正常工作,因为当我运行它时,不会显示相应的列(PID,PPID和TIME)。我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

execvp()命令列表的第一个参数,即argv[0],应该是可执行文件的文件名。所以,char *const parmList[] = {"ps", "-o pid,ppid,time", command2, NULL};