我有一个关于Unix和C编程中的文件描述符的问题。
假设我使用pipe(fd)
获取管道端的文件描述符 3 和 4,3 连接到读取端,4 连接到写入端。
现在我使用dup2(fd[write_end],1)
将写入结束的描述符(为 4(复制到进程中的文件描述符 1。如果我现在这样做close(fd[write_end])
它会关闭描述符 1 或描述符 4 吗?
成功调用dup2
后,两个文件描述符都有效。
然后调用close(fd[write_end])
时,因为fd[write_end]
设置为 4,所以这与close(4)
相同。 因此,文件描述符 1 保持打开且可用。