0
我試圖執行文件使用fork
和execvp
,但我遇到一些錯誤。我還沒有找到任何解決方案,我在這裏在線,因爲我沒有從我的exevp中得到任何錯誤,也沒有運行。這裏是我的代碼:exevp跳過所有代碼,直到等待電話c
pid_t child;
int status;
child = fork();
char *arg[3] = {"test","/home/ameya/Documents/computer_science/cs170/project1", (char*) 0};
if(child == 0){
printf("IN CHILD BEFORE EXECVP\n");
int value = execvp(arg[0],arg);
if(value < 0){
printf("ERROR\n");
}else{
printf("In Child : %i\n", value);
}
}
if(waitpid(child, &status, 0) != child){
printf("ERROR IN PROCESS\n");
}
printf("In Parent\n");
當我嘗試運行此代碼只輸出「兒童BEFORE EXCEPTION」和「父」它不會打印出任何的printf語句中爲什麼它之間去做。我正試圖運行一個簡單的可執行文件,將「hello world」打印到標準輸出中。
感謝所有幫助
由於這是有道理的,我沒有看到「Hello World」的輸出是因爲我還沒有從我的子進程重定向輸出,我的理由假設? – 2013-04-21 22:21:25
@AmeyaSavale不,你應該看到輸出...你想運行'test'程序嗎? – Xymostech 2013-04-21 22:53:42
是的,我做了,它打印出「你好世界」,該程序只有一個打印出該行的主,不需要讀取使用管道的子進程的輸出? – 2013-04-21 22:56:45