2010-11-13 61 views
0

系统调用dup()dup2()真的做什么?我将如何在实践中使用它们?dup()和dup2()系统实际上做了什么?

+0

阅读手册页并搜索后,你不理解哪部分内容? – 2010-11-13 05:34:08

+0

我无法理解如何使用编程和在哪里使用 – user484457 2010-11-13 05:35:52

+3

你看过http://stackoverflow.com/questions/1720535/practical-examples-use-dup-or-dup2或http:// stackoverflow。 com/questions/3918962/unix-c-dup2-question? – Zeke 2010-11-13 05:39:13

回答

2

两者都生成与现有的打开文件描述相对应的新文件描述符。新老fd(如位置)之间的大多数属性是共享的;我能想到的不共享的唯一属性是关闭执行标志。 dupdup2之间的差异在于dup分配最低的可用文件描述符编号,而dup2允许您选择将分配的文件描述符编号并自动关闭,并在已经占用的情况下将其替换。

+0

还要注意''fcn​​tl'带'F_DUPFD'命令的行为与'dup2'类似,但不会破坏现有的fd,所以在尝试创建尚未采用的特定fd编号时,它可以安全地用于线程化程序。 – 2012-01-07 04:23:29

相关问题