Вот небольшой кусок кода, родительский процесс записи канала и дочерний канал чтения, все работает нормально, прежде чем я добавлю '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;}