【发布时间】:2011-04-24 13:18:34
【问题描述】:
我有一个关于dup2() 的问题。它究竟是做什么的?复制文件描述符?
我不太明白dup2() 的用法。我试过谷歌,还是不太明白是什么意思。
【问题讨论】:
-
@Scott:感谢您发现骗局。
我有一个关于dup2() 的问题。它究竟是做什么的?复制文件描述符?
我不太明白dup2() 的用法。我试过谷歌,还是不太明白是什么意思。
【问题讨论】:
它接受两个作为描述符的参数。它使第二个等效于第一个。除了一些小例外,您可以互换使用它们...有关用例的更多详细信息,请参见手册页。
您可以这样做,例如,将控制台描述符 1、2 或 3 重定向到其他设备或文件。您不想关闭这些然后重新打开的原因是,不能保证您会在下一次打开的呼叫中收到相同的号码描述符。这就是为什么你会使用 open() 来获取文件描述符,然后 dup2(new_descriptor, 1); 强制描述符 1 去控制台以外的地方。
【讨论】: