我正在使用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)。我在这里做错了什么?
答案 0 :(得分:0)
execvp()
命令列表的第一个参数,即argv[0]
,应该是可执行文件的文件名。所以,char *const parmList[] = {"ps", "-o pid,ppid,time", command2, NULL};