這是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已經開啟,那麼它將先...