檔案描述符的複製函式dup、dup2:
函式原型:
#include //標頭檔案
int dup(int oldfd); //複製乙個檔案描述符,並返回新的檔案描述符,失敗返回-1
int dup2(int oldfd, int newfd); //指定乙個新的檔案描述符,成功返回新的檔案描述符,失敗返回-1
說明:檔案描述符的複製不會複製核心管理內中的檔案表,也就是說:兩個檔案描述符共用乙個檔案表
dup.c
//開啟檔案
int fd = open("b.bat",o_creat|o_rdwr); //fd = 3
if( -1 == fd)
perror("錯誤:"),exit(-1);
printf("fd = %d\n",fd);
//檔案描述符賦值
int fd2 = dup(fd);
printf("fd2 = %d\n",fd2); //fd2 = 4
//準備資料
char * str = "abcde";
char * str2 = "abcdef";
char * str3 = "123456";
//使用以上兩個檔案描述符寫入檔案
write(fd,str,strlen(str));
write(fd2,str2,strlen(str2)); //因為共用檔案表,所以寫入的資料會被追加到末尾
//使dup2函式指定乙個新的檔案描述符
int fd3 = dup2(fd,10); //指定乙個新的檔案描述符10並返回。
write(fd3,str3,strlen(str3));
close(fd); //各自關閉檔案描述符
close(fd2);
close(fd3);
//檢視檔案寫入 Linux C語言操作檔案目錄和檔案
qq群 852283276 b站 主頁 linux c 遍歷目錄及檔案 linux c 遍歷目錄及目錄下檔案 獲取檔案屬性 stat lstat fstat linux c語言遍歷資料夾所有檔案 stat與lstat的區別,當乙個檔案是符號鏈結時,lstat返回的是該符號鏈結本身的資訊,stat返回...
檔案操作 檔案讀寫
檔案讀寫實質也是呼叫api函式,微軟給我們提供了強大的檔案讀寫程式設計介面。讀寫的一般步驟是 1.呼叫createfile函式開啟或者建立檔案,返回檔案控制代碼 2.利用檔案控制代碼呼叫writefile或readfile函式寫入或讀取檔案 3.呼叫closehandle函式關閉開啟的檔案控制代碼 ...
檔案操作檔案移動
l移動檔案可通過file類的 move 方法來實現 l格式為 move string sourecefilename string destfilename l移動的三個要素 n原始檔存在,目標檔案不存在 n原始檔存在,目標檔案存在 n原始檔不存在 string soupath c users ad...