代码之家  ›  专栏  ›  技术社区  ›  Vimzy

使用execvp()调用Linux ps命令

  •  0
  • Vimzy  · 技术社区  · 10 年前

    我在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 回复  |  直到 10 年前
        1
  •  0
  •   Davislor    10 年前

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