簡要對比C語言中的dup()函數和dup2()函數
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()所復制的文件描述詞, 與原來的文件描述詞共享各種文件狀態(tài), 詳情可參考dup().
返回值:當復制成功時, 則返回最小及尚未使用的文件描述詞. 若有錯誤則返回-1, errno 會存放錯誤代碼.
附加說明:dup2()相當于調用fcntl(oldfd, F_DUPFD, newfd).
錯誤代碼:EBADF 參數fd 非有效的文件描述詞, 或該文件已關閉
相關文章
vscode配置遠程開發(fā)環(huán)境并遠程調試運行C++代碼的教程
這篇文章主要介紹了vscode配置遠程開發(fā)環(huán)境并遠程調試運行C++代碼的教程,本文通過截圖實例相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
詳解如何使用VSCode和CMake構建跨平臺的C/C++開發(fā)環(huán)境
本文主要介紹了如何使用VSCode和CMake構建跨平臺的C/C++開發(fā)環(huán)境,想進行跨平臺開發(fā)的同學們,一定要看一下2021-06-06
Visual?Studio2022下Opencv的配置圖文教程
本文主要介紹了Visual?Studio2022下Opencv的配置圖文教程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07

