簡要對比C語言中的dup()函數(shù)和dup2()函數(shù)
C語言dup()函數(shù):復(fù)制文件描述詞
頭文件:
#include <unistd.h>
定義函數(shù):
int dup (int oldfd);
函數(shù)說明:dup()用來復(fù)制參數(shù)oldfd 所指的文件描述詞, 并將它返回. 此新的文件描述詞和參數(shù)oldfd 指的是同一個(gè)文件, 共享所有的鎖定、讀寫位置和各項(xiàng)權(quán)限或旗標(biāo). 例如, 當(dāng)利用lseek()對某個(gè)文件描述詞作用時(shí), 另一個(gè)文件描述詞的讀寫位置也會(huì)隨著改變. 不過, 文件描述詞之間并不共享close-on-exec 旗標(biāo).
返回值:當(dāng)復(fù)制成功時(shí), 則返回最小及尚未使用的文件描述詞. 若有錯(cuò)誤則返回-1, errno 會(huì)存放錯(cuò)誤代碼.
錯(cuò)誤代碼: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 所指的文件會(huì)先被關(guān)閉. dup2()所復(fù)制的文件描述詞, 與原來的文件描述詞共享各種文件狀態(tài), 詳情可參考dup().
返回值:當(dāng)復(fù)制成功時(shí), 則返回最小及尚未使用的文件描述詞. 若有錯(cuò)誤則返回-1, errno 會(huì)存放錯(cuò)誤代碼.
附加說明:dup2()相當(dāng)于調(diào)用fcntl(oldfd, F_DUPFD, newfd).
錯(cuò)誤代碼:EBADF 參數(shù)fd 非有效的文件描述詞, 或該文件已關(guān)閉
相關(guān)文章
VC++實(shí)現(xiàn)的OpenGL線性漸變色繪制操作示例
這篇文章主要介紹了VC++實(shí)現(xiàn)的OpenGL線性漸變色繪制操作,結(jié)合實(shí)例形式分析了VC++基于OpenGL進(jìn)行圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下2017-07-07C++稀疏矩陣的各種基本運(yùn)算并實(shí)現(xiàn)加法乘法
今天小編就為大家分享一篇關(guān)于C++稀疏矩陣的各種基本運(yùn)算并實(shí)現(xiàn)加法乘法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02C++使用MySQL-Connector/C++連接MySQL出現(xiàn)LNK2019錯(cuò)誤的解決方法
這篇文章主要介紹了C++使用MySQL-Connector/C++連接MySQL出現(xiàn)LNK2019錯(cuò)誤的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03c++標(biāo)準(zhǔn)輸入輸出流關(guān)系的前世今生
這篇文章主要給大家介紹了關(guān)于c++標(biāo)準(zhǔn)輸入輸出流關(guān)系的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04C語言將24小時(shí)制轉(zhuǎn)換為12小時(shí)制的方法
這篇文章主要介紹了C語言將24小時(shí)制轉(zhuǎn)換為12小時(shí)制的方法,涉及C語言針對時(shí)間的相關(guān)操作技巧,非常簡單實(shí)用,需要的朋友可以參考下2015-07-07C語言模式實(shí)現(xiàn)C++繼承和多態(tài)的實(shí)例代碼
本篇文章主要介紹了C語言模式實(shí)現(xiàn)C++繼承和多態(tài)的實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07