当您对与dup2()复制的管道文件描述符调用close()时会发生什么?

时间:2018-10-19 17:50:36

标签: c pipe file-descriptor dup2

我对Unix和C编程中的文件描述符有疑问。

比方说,我使用pipe(fd)来获取文件描述符3和4的管道端,3连接到读取端,4连接到写入端。

现在我在处理过程中使用dup2(fd[write_end],1)将写端的描述符(为4)复制到文件描述符1。如果我现在close(fd[write_end])会关闭描述符1或描述符4?

1 个答案:

答案 0 :(得分:1)

成功调用dup2后,两个文件描述符均有效。

当您随后致电close(fd[write_end])时,由于fd[write_end]设置为4,因此与close(4)相同。因此文件描述符1保持打开和可用状态。