2015-09-27 81 views
0

我在C工作,並試圖用execvp()啓動以下Linux命令:使用execvp()來調用Linux的ps命令

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

execvp()命令列表的第一個參數將是argv[0]應該是可執行文件的文件名。所以,char *const parmList[] = {"ps", "-o pid,ppid,time", command2, NULL};