этот код печатает 1 из 2: - "HiByeHi" - "" (ничего), почему это происходит? это из-за гонки?
1. void transfer() {// transfer chars from STDIN to STDOUT
2. char c;
3. ssize_t ret = 1;
4. while ((read(0, &c, 1) > 0) && ret > 0)
5. ret = write(1, &c, 1);
6. exit(0);
7. }
8.
9. int main() {
10. int my_pipe[2];
11. close(0);
12. printf("Hi");
13. pipe(my_pipe);
14. if (fork() == 0) { // son process
15. close(my_pipe[1]);
16. transfer();
17. }
18. close(1);
19. dup(my_pipe[1]);
20. printf("Bye");
21. return 0;
}