2010-11-13 60 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

相關問題