簡要對比C語言中的dup()函數和dup2()函數_C 語言

來源:互聯網
上載者:User

C語言dup()函數:複製檔案描述詞
標頭檔:

#include <unistd.h>

定義函數:

int dup (int oldfd);

函數說明:dup()用來複製參數oldfd 所指的檔案描述詞, 並將它返回. 此新的檔案描述詞和參數oldfd 指的是同一個檔案, 共用所有的鎖定、讀寫位置和各項許可權或旗標. 例如, 當利用lseek()對某個檔案描述詞作用時, 另一個檔案描述詞的讀寫位置也會隨著改變. 不過, 檔案描述詞之間並不共用close-on-exec 旗標.

傳回值:當複製成功時, 則返回最小及尚未使用的檔案描述詞. 若有錯誤則返回-1, errno 會存放錯誤碼.

錯誤碼:EBADF 參數fd 非有效檔案描述詞, 或該檔案已關閉.

C語言dup2()函數:複製檔案描述詞
標頭檔:

 #include <unistd.h>

定義函數:

int dup2(int odlfd, int newfd);

函數說明:dup2()用來複製參數oldfd 所指的檔案描述詞, 並將它拷貝至參數newfd 後一塊返回. 若參數newfd為一已開啟的檔案描述詞, 則newfd 所指的檔案會先被關閉. dup2()所複製的檔案描述詞, 與原來的檔案描述詞共用各種檔案狀態, 詳情可參考dup().

傳回值:當複製成功時, 則返回最小及尚未使用的檔案描述詞. 若有錯誤則返回-1, errno 會存放錯誤碼.

附加說明:dup2()相當於調用fcntl(oldfd, F_DUPFD, newfd).

錯誤碼:EBADF 參數fd 非有效檔案描述詞, 或該檔案已關閉

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.