最近在看ffmpeg的有關知識,由於經常遇到檔案讀寫,但是對於c語言的檔案讀寫又有些忘記,於是便好好的記錄一下c語言的檔案讀寫,同時也讓自己能夠不再對c語言的檔案讀寫感到陌生(其實就是重新複習一下c語言相關的檔案讀寫的相關的api).
常用的檔案讀寫函式如下:
file * fopen(const char* restrict filename,const char* restrict mode);
int fclose(file* restrict stream);
int fflush(file* restrict stream);
file *freopen(const char* restrict filename,const char* restrict mode,file *restrict stream);
fopen()函式需要乙個檔案路徑,和檔案開啟模式,常用的開啟模式如下:
如果發生錯誤,會將錯誤碼設定在erron變數,並返回乙個null。
fclose()是關閉開啟的檔案指標,包括清空內部快取資料,在關閉錯誤時返回eof,否則返回0.
fflush()函式是重新整理檔案指標,清空與輸出或更新資料流引數相關的任何緩衝區。如果發生錯誤函式返回eof,否則返回0
freopen()是重新開啟資料流,就像先呼叫fclose關閉檔案,然後呼叫fopen開啟檔案,成功時返回輸入資料流與輸入的資料流相關,失敗返回null.
檔案定向:
int fseek(file *restrict stream,long int offset,int wherefrom);
long int ftell(file *restrict stream);
void rewind(file *restrict stream);
#define seek_set 0
#defube seek_cur 1
#define seek_end 2
fseek隨機訪問開啟的stream,第二個引數是開啟位置,wherefrom是定位方式,表示從檔案哪個點開始測量offset,如果定位成功返回0,負責返回下乙個非0值。然後清除任何檔案結尾指示符。其中wherefrom的值以及含義如下:
seek_set或0 距離檔案開頭offset個字元
seek_cur或1 距離檔案當前位置offset個字元
seek_end或2 距離檔案末尾offset個字元
ftell函式對於二進位制返回當前檔案位置之前的位元組數,如果失敗返回-1.對於文字檔案,返回的值是由實現定義的。
rewind函式則是將資料流復位到檔案開頭。呼叫rewind(stream)等價於:
fseek(stream,0,seek_set);
char *fgets(char *s,int n,file *stream);
char getc(file *stream);
int fscanf(file *restrict stream,const char* restrict format,…)
int fputc(int c,file *stream);
int putc(int c,file *stream);
int fputs(const char* s,file *stream);
int fprintf(file *restrict stream,const char* restrict format,…)
int snprintf(char* restrict s,size_t n,const char* restrict format,…);
讀寫二進位制的函式有:
size_t fread(void *restrict ptr,size_t element_size,size_t count,file *restrict stream);
size_t fwrite(const void* restrict ptr,size_t element_size,size_t count,file *restrict strean);
fread和fwrite分別是輸入和輸出到二進位制檔案。stream是輸入輸出流ptr是指向count元素陣列的指標,每個元素是element_size 字元長。fread返回實際讀取的專案數,如遇到末尾,則這個數小於count,遇到錯誤返回0,使用feof或ferror判斷是檔案末尾還是錯誤,如果element_size和count為0,不傳輸資料。
重新命名及檔案
int rename(const char *oldname,const char *newname);
int remove(const char* filename);
兩個函式操作成功均返回0,否則返回非0值 C語言檔案讀寫
include include define maxlen 1024 int main file outfile,infile outfile fopen 1.bmp wb infile fopen c 1.bmp rb unsigned char buf maxlen int rc while r...
C語言讀寫檔案
c語言庫函式包括檔案的開啟 關閉 讀 寫 定位等各種操作 要操作檔案,首先要宣告乙個檔案指標變數file fp 呼叫fopen開啟檔案 檔案指標名 fopen 檔名,使用檔案方式 ps 這裡檔案路徑必須是帶雙斜槓 其中,1.檔案使用方式 意 義 rt 唯讀開啟乙個文字檔案,只允許讀資料 wt 只寫開...
C語言檔案讀寫
讀取乙個完整的檔案 include include int main 如果檔案錯誤,退出1 獲得檔案大小 fseek pfile 0 seek end 指標移到檔案末位 lsize ftell pfile 獲得檔案長度 rewind pfile 函式rewind 把檔案指標移到由stream 流 指...