使用 execvp() 调用 Linux ps 命令

Using execvp() to Call Linux ps Command

我正在使用 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)。我在这里做错了什么?

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