我现在正在学习Linux并为我的系统编程课程提供管道,我现在很难理解在一系列管道中关闭文件描述符。
//写代码……
描述符在它打开的所有进程关闭之前不会真正关闭。由于每个子进程都继承了前一进程中的所有管道描述符,因此它们应该关闭所有未使用的进程。
关闭读取端口的主要原因是,如果读取器退出后尝试写入管道,写入过程将收到错误或信号。如果其他孩子保持所有阅读端口都打开,那么在所有后续孩子退出之前不会发生这种情况。