Linux檔案共享 三 dup

2021-06-21 10:25:41 字數 899 閱讀 2305

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中。返回的新檔案...