這是一小段代碼,父進程寫入管道和子讀取管道,在父進程中添加'wait()'之前,一切正常。我認爲這應該沒有什麼區別,但是當我輸入時,它就會陷入困境。我對系統編程相當陌生。任何人都可以幫忙嗎?使用wait()時,無法讀取管道?
int main() {
char* msg = malloc(sizeof(100));
int fd[2];
pipe(fd);
int status;
if (fork()!=0){
close(fd[0]);
dup2(fd[1],1);
scanf("%s",msg);
puts(msg);
wait(&status);
}
else {
char* buf = malloc(sizeof(100));
close(fd[1]);
dup2(fd[0],0);
scanf("%s",buf);
puts(buf);
}
return 0;}
如果fork返回-1,該怎麼辦?適當的錯誤處理:這是晚餐 – tbert 2012-03-07 08:40:54