linux下dup2的實現

2021-09-25 08:39:38 字數 413 閱讀 5943

這是apue的乙個習題,要求不用fcntl來實現dup2.這是我的思路:迴圈呼叫dup複製file descriptor,直到與指定的相同。如果您有更高效的方法,請告訴小弟我,非常感謝!

**如下:

#include #include #include #include #define max 1000

//function:neil_dup2

int neil_dup2(int filedes,int filedes2)

; int i,j;

for(i=0;i<=filedes2;i++)

for(j=0;jclose(fd_list[j]);

return fd_list[i];

}int main()

dup2 功能實現

用dup 來返回檔案描述符,直到符合要求的為止,最後再把不符合要求的關閉 當輸入的描述符是負的或者已超過max open時,會出錯 include dup include include define open max 256 int my dup2 int,int int main int arg...

Linux 系統呼叫 dup 和dup2

1 dup dup 系統呼叫會建立檔案描述符的乙個拷貝 1 新生成的檔案描述符是程序中最小的未使用的檔案描述符,0 1 2對應標準輸入 標準輸出 標準錯誤輸出 2 如果拷貝成功,那麼原始的和拷貝的檔案描述符可能會交叉使用 3 兩者都指向同乙個開啟的檔案描述符,因此共享檔案偏移量和檔案狀態標誌 語法 ...

Unix 下dup和dup2函式的解析

函式原型 include int dup int filedes int dup2 int filedes,int filedes2 apue上說dup返回最小的可用檔案描述符 最小的尚未開啟的檔案 對於dup2,我們指定新的檔案描述符引數為filedes2。如果filedes2已經開啟,那麼它將先...