【发布时间】:2021-05-08 10:46:40
【问题描述】:
我有一个关于 Unix 和 C 编程中的文件描述符的问题。
假设我使用pipe(fd) 获取管道端的文件描述符 3 和 4,3 连接到读取端,4 连接到写入端。
现在我使用dup2(fd[write_end],1) 将写入端的描述符(为4)复制到我的进程中的文件描述符1。如果我现在执行close(fd[write_end]),它会关闭描述符 1 还是描述符 4?
【问题讨论】:
-
write_end仍将是描述符4(在您的示例中)。 -
请注意,在
dup2之后,需要关闭管道描述符以防止无关/挂起的文件描述符。在这里查看我的答案:stackoverflow.com/questions/52823093/fd-leak-custom-shell/…
标签: c pipe file-descriptor dup2