簡(jiǎn)要對(duì)比C語(yǔ)言中的dup()函數(shù)和dup2()函數(shù)
C語(yǔ)言dup()函數(shù):復(fù)制文件描述詞
頭文件:
#include <unistd.h>
定義函數(shù):
int dup (int oldfd);
函數(shù)說(shuō)明:dup()用來(lái)復(fù)制參數(shù)oldfd 所指的文件描述詞, 并將它返回. 此新的文件描述詞和參數(shù)oldfd 指的是同一個(gè)文件, 共享所有的鎖定、讀寫(xiě)位置和各項(xiàng)權(quán)限或旗標(biāo). 例如, 當(dāng)利用lseek()對(duì)某個(gè)文件描述詞作用時(shí), 另一個(gè)文件描述詞的讀寫(xiě)位置也會(huì)隨著改變. 不過(guò), 文件描述詞之間并不共享close-on-exec 旗標(biāo).
返回值:當(dāng)復(fù)制成功時(shí), 則返回最小及尚未使用的文件描述詞. 若有錯(cuò)誤則返回-1, errno 會(huì)存放錯(cuò)誤代碼.
錯(cuò)誤代碼:EBADF 參數(shù)fd 非有效的文件描述詞, 或該文件已關(guān)閉.
C語(yǔ)言dup2()函數(shù):復(fù)制文件描述詞
頭文件:
#include <unistd.h>
定義函數(shù):
int dup2(int odlfd, int newfd);
函數(shù)說(shuō)明:dup2()用來(lái)復(fù)制參數(shù)oldfd 所指的文件描述詞, 并將它拷貝至參數(shù)newfd 后一塊返回. 若參數(shù)newfd為一已打開(kāi)的文件描述詞, 則newfd 所指的文件會(huì)先被關(guān)閉. dup2()所復(fù)制的文件描述詞, 與原來(lái)的文件描述詞共享各種文件狀態(tài), 詳情可參考dup().
返回值:當(dāng)復(fù)制成功時(shí), 則返回最小及尚未使用的文件描述詞. 若有錯(cuò)誤則返回-1, errno 會(huì)存放錯(cuò)誤代碼.
附加說(shuō)明:dup2()相當(dāng)于調(diào)用fcntl(oldfd, F_DUPFD, newfd).
錯(cuò)誤代碼:EBADF 參數(shù)fd 非有效的文件描述詞, 或該文件已關(guān)閉
相關(guān)文章
深入解析C++中派生類(lèi)的構(gòu)造函數(shù)
這篇文章主要介紹了深入解析C++中派生類(lèi)的構(gòu)造函數(shù),是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-09-09
websocket++簡(jiǎn)單使用及實(shí)例分析
下面小編就為大家?guī)?lái)一篇websocket++簡(jiǎn)單使用及實(shí)例分析。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05
C++超詳細(xì)講解內(nèi)存空間分配與this指針
this?指針在C++類(lèi)和對(duì)象中是個(gè)很方便實(shí)用的關(guān)鍵字,可以簡(jiǎn)化對(duì)象成員屬性的調(diào)用,使代碼表達(dá)的含義更加準(zhǔn)確;在之前的學(xué)習(xí)中我們都可以判斷變量所占內(nèi)存空間大小,那么我們創(chuàng)建的類(lèi)對(duì)象所占的內(nèi)存空間怎么計(jì)算呢?想知道this的妙用和類(lèi)對(duì)象占用的內(nèi)存空間就來(lái)跟我學(xué)習(xí)吧2022-05-05
vscode配置遠(yuǎn)程開(kāi)發(fā)環(huán)境并遠(yuǎn)程調(diào)試運(yùn)行C++代碼的教程
這篇文章主要介紹了vscode配置遠(yuǎn)程開(kāi)發(fā)環(huán)境并遠(yuǎn)程調(diào)試運(yùn)行C++代碼的教程,本文通過(guò)截圖實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
詳解如何使用VSCode和CMake構(gòu)建跨平臺(tái)的C/C++開(kāi)發(fā)環(huán)境
本文主要介紹了如何使用VSCode和CMake構(gòu)建跨平臺(tái)的C/C++開(kāi)發(fā)環(huán)境,想進(jìn)行跨平臺(tái)開(kāi)發(fā)的同學(xué)們,一定要看一下2021-06-06
c++調(diào)用python實(shí)現(xiàn)圖片ocr識(shí)別
所謂c++調(diào)用python,實(shí)際上就是在c++中把整個(gè)python當(dāng)作一個(gè)第三方庫(kù)引入,然后使用特定的接口來(lái)調(diào)用python的函數(shù)或者直接執(zhí)行python腳本,本文介紹的是調(diào)用python實(shí)現(xiàn)圖片ocr識(shí)別,感興趣的可以了解下2023-09-09
Visual?Studio2022下Opencv的配置圖文教程
本文主要介紹了Visual?Studio2022下Opencv的配置圖文教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07

