关闭原始文件描述符后,重复的描述符文件是否关闭?

问题描述:

复制调用dup的文件描述符fd,并关闭原始文件描述符。关闭原始文件描述符后,重复的描述符文件是否关闭?

是否所有重复的文件描述符也关闭?

否重复不会被关闭。否则,主要使用案例(复制到STDOUT_FILENOSTDIN_FILENO)将是无用的。

+1

dup的手册页没有提到关于关闭的任何内容,请问您可以参考我的信息来源吗?谢谢 – Bionix1441

+2

很明显,因为'dup'没有做任何关闭......你会想参考一些其他的POSIX手册页,也许是关于程序执行的一个手册页。说到这一点,我敢肯定有一个*(可能更多)的情况下,两个文件描述符将被关闭:在程序终止。 – Sebivor

+0

@ Bionix1441如果您制作一份副本或一些纸张,然后撕碎原件,您仍然有副本,对不对?这里基本上是一样的东西。一旦你创建了副本(带有'dup'或类似的),那么在原始和重复描述符之间就没有链接了。您应该也可以阅读*引用计数*,因为重复的实际“文件”将通过重复使其引用计数器加1,并且“文件”在引用计数为零之前不会真正关闭。 –