Почему функция процесса чтения сына не возвращает (я думаю, она вернет -1), а функция процесса печати сына не работает.
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int main() {
int fd[2];
pipe(fd);
pid_t pid = fork();
if(pid == 0) {
char buf[128] = {0};
int ret = read(fd[0], buf, sizeof buf);
printf("Son ret is %d\n", ret);
write(STDOUT_FILENO, buf, ret);
}
else if(pid > 0){
char buf[128] = "hello\n\0";
write(fd[1], buf, sizeof buf);
memset(buf, 0, sizeof buf);
int ret = read(fd[0], buf, sizeof buf);
printf("Dad ret is %d\n", ret);
write(STDOUT_FILENO, buf, ret);
}
return 0;
}