我試圖輸出'ps'的結果作業,但是我遇到了一些我想要弄清的怪癖。有關參數的execv()怪癖
這正常工作,並顯示PS在外殼輸出:
//Create "ps -u laser"
int pid_ps = fork();
char *argv[1] = {"-u laser"};
if (pid_ps == 0) {
execv("/bin/ps", argv);
}
現在,這是在我的幻燈片給出的格式,而只是給出了「用法:」和「格式是一個或更多的」通知PS時,它的運行:
//Create "ps -u laser"
int pid_ps = fork();
char *argv[2] = {"-u", "laser"};
if (pid_ps == 0) {
execv("/bin/ps", argv);
}
我也試圖把0和NULL的陣列,這是在其他的答案提出的結束,但沒有運氣。
我可能忽略了一些小事,但我對c不太熟悉。任何見解都會被讚賞。
我不確定其中之一是否正確。你確定'char * argv [] = {「-u」,「laser」,NULL};'不起作用? – 2011-04-16 16:37:55
只檢查了一倍,仍然給出了「格式」和「用法」消息。 – lase 2011-04-16 16:48:58