dup返回的新檔案描述符是當前可用檔案描述符中的最小值。它返回的新描述符與引數
fd共享乙個檔案表項(
file
物件)。呼叫
dup會使
file
的引用計數增
1,即增加「開啟檔案」引用計數。圖
3-3是
apue
中的原圖。
我們用以下程式測試並說明:
#include #include #include #include #define file_mode (s_irusr|s_iwusr|s_irgrp|s_iroth)
int main(int argc, char *argv)
執行結果如圖:
我們發現第一次呼叫close
,檔案並沒有真正關閉,因為
dup是
file
的引用計數為2,
close(fd1),
只是使引用計數變為1,而
file
物件並沒有銷毀。我們可以用圖形表示呼叫
dup後的情況。
總結:dup
會增加「開啟檔案引用計數」(
file
物件的引用計數),造成兩個描述符指向同一
file
物件。但不會建立新的
file
物件。
三 windows和Linux檔案共享
1.前提一 能ping通 前提二 關閉防火牆,關閉selinux。2.使用winscp 1 使用管理員身份執行該軟體 2 設定協議,預設使用第乙個 3 設定linux主機ip位址,埠保持不變 4 輸入使用者名稱和密碼 5 login 之後就可以直接在左右兩邊的的視窗裡面拖拽檔案進行檔案拷貝 3.sa...
Linux 系統呼叫 dup 和dup2
1 dup dup 系統呼叫會建立檔案描述符的乙個拷貝 1 新生成的檔案描述符是程序中最小的未使用的檔案描述符,0 1 2對應標準輸入 標準輸出 標準錯誤輸出 2 如果拷貝成功,那麼原始的和拷貝的檔案描述符可能會交叉使用 3 兩者都指向同乙個開啟的檔案描述符,因此共享檔案偏移量和檔案狀態標誌 語法 ...
dup函式(檔案程式設計)
dup和dup2用來複製檔案描述符。函式原型 include int dup int oldfd int dup2 int oldfd,int newfd dup用來複製oldfd所指的檔案描述符。但複製成功時返回最小的尚未被使用的檔案描述符。若有錯誤則返回 1,錯誤 存入errno中。返回的新檔案...