linux系統程式設計之檔案IO

2021-10-21 17:46:46 字數 2117 閱讀 9736

1.開啟檔案的函式open,第乙個引數表示檔案路徑名,第二個為開啟標記,第三個為檔案許可權

效果測試:列印開啟檔案返回的描述符為3,同時建立了檔案testopen1

2.建立檔案函式creat和關閉函式close

使用**

#include #include#include #includeint main(int argc,char *ar**)

fd = creat(ar**[1],0777);

printf("fd = %d\n",fd);

close(fd);

return 0;

}

測試結果:

3.寫檔案函式write,第乙個引數表示要寫入的檔案的描述符,第二個引數表示要寫入的內容的記憶體首位址,第三個引數表示要寫入內容的位元組數;

寫入成功返回寫入的位元組數,失敗返回-1

測試**:

#include #include #include #include#include #include#includeint main(int argc,char *ar**)

fd = open(ar**[1],o_creat | o_rdwr,0777);

if(fd == -1)

char *con = "hello world!";

int num = write(fd,con,strlen(con));

printf("write %d byte to %s",num,ar**[1]);

close(fd);

return 0;

}

結果:hello world!寫入hello檔案成功

檢視當前系統最大開啟檔案個數

4.讀取檔案read,第乙個引數是檔案描述符,第二個引數是儲存讀取檔案內容的記憶體首位址,第三個引數是一次讀取的位元組數

測試**,完成檔案複製

#include #include #include #include#include #include#includeint main(int argc,char *ar**)

fd_src = open(ar**[1],o_rdonly);

fd_des = open(ar**[2],o_creat | o_wronly | o_trunc,0777);

if(fd_src != -1 && fd_des != -1)

close(fd_src);

close(fd_des);

}return 0;

}

效果檢視,可見實現了檔案open.c的拷貝

linux系統程式設計之檔案I O

一 檔案描述符 linux系統中,所有開啟的檔案都對應乙個數字,這個數字由系統來分配,稱為檔案描述符。pcb程序控制塊裡有檔案描述符表,以陣列形式存放於核心區。乙個程序預設開啟3個檔案描述符 stdin fileno 0 stdout fileno 1 stderr fileno 2 新開啟檔案返回...

linux系統程式設計之檔案IO(一)

在linux中,一切皆檔案,想對檔案內容進行操作,除了有操作許可權外,更重要的一點是要開啟檔案。以下只有乾貨 1 系統呼叫 include include include int open const char name,int flags int open const char name,int ...

Linux系統程式設計之檔案程式設計

目錄 一 檔案程式設計 1 linux檔案 2 檔案描述符 file descriptor 3 常用api open write read lseek close 1 open 開啟檔案函式 2 close 關閉檔案 3 write 寫檔案 4 read 讀檔案 5 lseek 游標定位 linux...