Unix C dup2问题

Unix C dup2 Question

我对dup2()有疑问。它到底是做什么的?复制文件描述符?

我不太了解dup2()的用法。我尝试了Google,但仍然不太了解它的含义。


它使用两个参数作为描述符。它使第二个等同于第一个。您可以互换使用它们,但有一些次要的例外。有关用例的更多详细信息,请参见手册页。

您可以执行此操作,例如,将控制台描述符1、2或3重定向到其他设备或文件。您不想关闭它们然后重新打开的原因是,不能保证您在下一个打开的调用中会收到相同的数字描述符。这就是为什么要使用open()获取文件描述符,然后使用dup2(new_descriptor, 1);强制描述符1进入控制台以外的其他位置的原因。