C語言檔案操作

2021-06-28 00:19:52 字數 3159 閱讀 2059

一. 檔案的基本訪問模式:read,write,open,close,lseek. 下面的函式均定義在和中。

1.

int open(const char *pathname,intaccess)

其中,pathname是檔案的路徑名,access是檔案的開啟方式,有o_rdonly,o_wronly,o_rdwr,o與_creat,o_trunc,o_paaend等的或運算。

用法:

int fd=open("c:\\test",o_rdwr|o_creat);

返回值為檔案控制代碼,開啟失敗返回-1,開啟成功,則返回值留有後用。

2.

int read(int handle,char*buf,unsigned len)

其中,handle是在open()執行完得到的,如上面的fd,就是handle,buf是儲存讀入內容的記憶體指標。len是實際讀入的位元組數.返回值為實際讀入的位元組數,返回0表示讀到了末尾,返回-1表示出錯。

用法:

int n_read=read(fd,buf,bufsize);

3.

int write(int handle,char*buf,unsigned len)

用法:

int n_write = write(fd,buf,bufsize);

4.

int close(handle)
handle是open函式獲得的控制代碼

用法:

int ret =close(fd);

5.

long lseek(int handle,long offest,int formwhere)
handle是open函式獲得的控制代碼,offset是相對formwhere的偏移位置,fromwhere可以是seek_set,seek_cur,seek_end中的任何乙個,分別表示在檔案頭,檔案當前位置,檔案末尾成功返回後的當前位置,從檔案頭算起,否則返回-1l。

用法:

int pos = lseek(fd ,100l,seek_cur);
得到檔案長度的用法:

flength=lseek(fd,0l,seek_end);
得到當前位置的用法:

cur_pos= lseek(fd,0l,seek_cur);

二. c語言獨特的檔案訪問方式

下面介紹的函式,都定義在中。

1.

file *fopen(const char *filename,const char *mode)
其中,filename是檔名,包含路徑,如果路徑沒有,則會開啟當前目錄檔案,mode是開啟方式,常用的方式有:r,w,rw,a,分別表示,唯讀,只寫,讀寫,追加。返回值為此檔案的指標,留有後用,如果開啟失敗,返回null。

用法:

file *fp=fopen("c:\\system32.sys","wr");

常用的開啟檔案方式:

if((fp=open("c:\\abc.txt","r"))==null)

2.關於檔案指標

file  *fp;與檔案相關的每個流,都有乙個file型別的控制結構,定義有關檔案操作的資訊。

typedef struct

file;

在stdio.h檔案中定義

3.int fgetc(file *fp)

這個函式的返回值是返回所讀取的乙個位元組,如果讀到檔案末尾或者出錯時,返回eof。

4.int fputc(file *fp)

這個函式的功能是把字元ch寫入檔案指標fp所指向的檔案的當前寫指標位置。

5. char *fgets(char *s,int n,file *fp)

從檔案結構體指標fp中讀取資料,每次讀一行,讀取的內容儲存在buf所指向的字元陣列中,每次讀取bufsiz-1個字元(第bufsiz個字元為『\0')。

6.int fscanf(file *fp,const char *format,[argument]......)

功能:從乙個流中格式化輸入,fscanf()遇到空格或者換行時結束.

for example:定義 char a[10],int b,double c.

fscanf(*fp,"%s %d %lf",&a,&b,&c);

7.int fprintf(file *fp,const char *format,[argument])

功能:格式化輸出到乙個流檔案中。

for example;定義 char s="adffadgg"; double b=1.05; int a=10;

fprintf(*fp,"%s %d %lf",s,a,b);

8.size_t fread(void *ptr,size_t size,size_t n,file *fp)

功能:從乙個流檔案中讀取資料,最多讀取n個元素,每個元素size個位元組,如果呼叫成功,則返回實際讀取到的元素個數,如果不成功或者讀到檔案末尾,則返回0.

for example:定義char s="adadbfdfdd",char buf[20].

fread(buf,strlen(s)+1,1,fp);

9. int feof(file *fp);

功能:用來檢測流檔案中的截止符,如果檔案結束,則返回非0值,否則返回0.

10. int fclose(file *fp)

功能:關閉乙個流檔案,把遺留在緩衝區的資料寫入檔案中,在執行關閉操作。如果關閉成功,則返回0,否則返回eof(-1)。

三. 錯誤處理

所有檔案出錯時,都返回-1.

void perror(const char *s);perror函式向標準錯誤輸出字串s,隨後附上錯誤的說明。

ferror(file *fp):

檢查輸入輸出函式的呼叫是否正確,返回非0值表示出錯。

feof():

檢查檔案是否結束,返回非0值,表示結束。

c語言檔案操作

rt null ch fgetc fp while ch eof fclose fp 本 例程式的功能是從檔案中逐個讀取字元,在螢幕上顯示。程式定義了檔案指標fp,以讀文字檔案方式開啟檔案 d jrzh example ex1 1.c 並使fp指向該檔案。如開啟檔案出錯,給出提示並退出程式。程式第1...

C語言檔案操作

1.首先要理解幾個概念 檔案 按一定規則儲存在磁碟上的資料集合。檔名 能唯一標識某個磁碟檔案的字串。形式 碟符 路徑 檔名.副檔名 二進位制檔案 資料以二進位制形式在儲存在磁碟上。裝置檔案 輸入 輸出裝置 標準輸入檔案 鍵盤 標準輸出檔案 標準錯誤輸出檔案 顯示器 檔案型指標 c語言是通過名為fil...

C語言檔案操作

1,兩種檔案訪問方式 輸入,輸出方式 順序訪問 直接訪問 2,資料的兩種存放形式 文字檔案 二進位制檔案 3.檔案指標 定義檔案型別指標變數的一般形式 file 指標變數名 例如 file fp1,fp2 4.開啟檔案 在使用檔案之前,需開啟檔案.在c裡使用fopen函式開啟檔案.格式為 fopen...