簡要對比C語言中的dup()函數(shù)和dup2()函數(shù)
C語言dup()函數(shù):復(fù)制文件描述詞
頭文件:
#include <unistd.h>
定義函數(shù):
int dup (int oldfd);
函數(shù)說明:dup()用來復(fù)制參數(shù)oldfd 所指的文件描述詞, 并將它返回. 此新的文件描述詞和參數(shù)oldfd 指的是同一個文件, 共享所有的鎖定、讀寫位置和各項權(quán)限或旗標. 例如, 當(dāng)利用lseek()對某個文件描述詞作用時, 另一個文件描述詞的讀寫位置也會隨著改變. 不過, 文件描述詞之間并不共享close-on-exec 旗標.
返回值:當(dāng)復(fù)制成功時, 則返回最小及尚未使用的文件描述詞. 若有錯誤則返回-1, errno 會存放錯誤代碼.
錯誤代碼:EBADF 參數(shù)fd 非有效的文件描述詞, 或該文件已關(guān)閉.
C語言dup2()函數(shù):復(fù)制文件描述詞
頭文件:
#include <unistd.h>
定義函數(shù):
int dup2(int odlfd, int newfd);
函數(shù)說明:dup2()用來復(fù)制參數(shù)oldfd 所指的文件描述詞, 并將它拷貝至參數(shù)newfd 后一塊返回. 若參數(shù)newfd為一已打開的文件描述詞, 則newfd 所指的文件會先被關(guān)閉. dup2()所復(fù)制的文件描述詞, 與原來的文件描述詞共享各種文件狀態(tài), 詳情可參考dup().
返回值:當(dāng)復(fù)制成功時, 則返回最小及尚未使用的文件描述詞. 若有錯誤則返回-1, errno 會存放錯誤代碼.
附加說明:dup2()相當(dāng)于調(diào)用fcntl(oldfd, F_DUPFD, newfd).
錯誤代碼:EBADF 參數(shù)fd 非有效的文件描述詞, 或該文件已關(guān)閉
相關(guān)文章
VC++實現(xiàn)的OpenGL線性漸變色繪制操作示例
這篇文章主要介紹了VC++實現(xiàn)的OpenGL線性漸變色繪制操作,結(jié)合實例形式分析了VC++基于OpenGL進行圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下2017-07-07C++使用MySQL-Connector/C++連接MySQL出現(xiàn)LNK2019錯誤的解決方法
這篇文章主要介紹了C++使用MySQL-Connector/C++連接MySQL出現(xiàn)LNK2019錯誤的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03C語言模式實現(xiàn)C++繼承和多態(tài)的實例代碼
本篇文章主要介紹了C語言模式實現(xiàn)C++繼承和多態(tài)的實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07