当子进程结束时,它的管道末端会自动关闭。父进程会在读取子进程死亡前写入的所有内容后读到EOF,就像客户端显式调用close()一样。请注意,父进程只能读取实际写入管道的数据。如果子进程正在执行缓冲输出,默认情况下使用stdio,当它死亡时,应用程序已经写入的所有数据可能都不在管道中。当进程调用exit()时,stdio缓冲区会自动刷新,但如果由于信号而导致该进程死亡,则不会调用此函数。