我正在使用 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};
关于c - 使用 execvp() 调用 Linux ps 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32803419/