C在流程执行结束时关闭两个管道

C在流程执行结束时关闭两个管道,c,pipe,C,Pipe,我用C语言编写了一个程序,其中父亲与孩子通信,孩子分别通过两个管道与父亲通信 它工作得很好 父管道关闭一个管道的读取端,同时也关闭另一个管道的写入端。 儿子也一样,只是改变了每根管子的关闭方式 理论问题是: 当所有的孩子都完成了他们的执行,而父亲即将成功退出时,我是否应该关闭类型的其他两侧 真的有必要吗?为什么?我只是想更好地了解整个程序的结构 提前谢谢 退出程序时,任何打开的文件都将自动关闭。 当然,您可以显式地关闭它,如果您想执行任何特殊的错误处理,您应该显式地关闭它,以便检查close()

我用C语言编写了一个程序,其中父亲与孩子通信,孩子分别通过两个管道与父亲通信

它工作得很好

父管道关闭一个管道的读取端,同时也关闭另一个管道的写入端。 儿子也一样,只是改变了每根管子的关闭方式

理论问题是:

当所有的孩子都完成了他们的执行,而父亲即将成功退出时,我是否应该关闭类型的其他两侧

真的有必要吗?为什么?我只是想更好地了解整个程序的结构


提前谢谢

退出程序时,任何打开的文件都将自动关闭。 当然,您可以显式地关闭它,如果您想执行任何特殊的错误处理,您应该显式地关闭它,以便检查
close()
的返回值


您可能知道,
close()
如果磁盘已满且有数据尚未刷新,则将返回错误。

退出程序时,所有打开的文件都将自动关闭。 当然,您可以显式地关闭它,如果您想执行任何特殊的错误处理,您应该显式地关闭它,以便检查
close()
的返回值


您可能已经知道,
close()
如果磁盘已满,并且存在尚未刷新的数据,
close()将返回错误。

您是否使用子级的标准输入和标准输出管道?我没有使用子级的标准输入和标准输出。我正在使用父亲的标准输出在某个文件上打印结果。您正在使用孩子的标准输入和标准输出管道吗?我没有使用孩子的标准输入和标准输出。我使用父亲的标准输出将结果打印到某个文件上。