親プロセスで親プロセスの書き込みパイプと子読み取りパイプがあり、親プロセスで '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;}
フォークが-1を返した場合はどうなりますか?適切なエラー処理:それは夕食のためのものです – tbert