linux C複習 檔案操作(檔案描述符的複製)

2021-06-23 05:42:46 字數 1192 閱讀 8258

檔案描述符的複製函式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...