c - 使用 execvp() 调用 Linux ps 命令

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

最佳答案

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

关于c - 使用 execvp() 调用 Linux ps 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32803419/

相关文章:

c - 特定应用程序无法识别 DLL 入口点

c - gcc链接静态库中未解析符号的顺序是什么

linux - 文件打开后访问时间不变

android - 交叉编译时链接到共享对象库 (.so)

java - getRuntime().exec(String[]) 函数的行为与 getRuntime().exec(String) (Android) 不同

c - 在C中生成1000字节的十六进制数

c - 倾斜补偿罗盘

linux - 将行作为参数传递给脚本

linux - 在 Bash 中将 -exec 选项与 Find 命令一起使用

ruby - 杀死已经脱离 shell 的子进程