gpt4 book ai didi

c - 当你在一个用 dup2() 复制的管道文件描述符上调用 close() 时会发生什么?

转载 作者:太空宇宙 更新时间:2023-11-04 03:14:58 26 4
gpt4 key购买 nike

我有一个关于 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 保持打开和可用状态。

关于c - 当你在一个用 dup2() 复制的管道文件描述符上调用 close() 时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52897615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com