linux文件操做

linux都是以文件爲單位對數據進行管理的,每個打開的文件在內存中都有一個結構體與之相對應,linux

這個結構體保存文件信息:文件名、大小、位置、權限等等ide

typedef struct {成員列表} FILE;函數

文件的操做:spa

<1>打開FILE* fopen(const char* path, const char* mode);指針

   path:包含文件全路徑信息的字符串內存

   mode:訪問文件的方式資源

   文本文件:字符串

   "r"只讀文件必須存在get

   "w"寫入文件不存在則建立,不然覆蓋it

   "a"追加文件不存在則建立,不然追加

   下面的狀況文件必須存在:

   "r+"讀寫文件開始

   "w+"讀寫覆蓋

   "a+"讀寫追加

   二進制文件:功能同上

   "rb"

   "wb"

   "ab"

   下面的狀況必須存在:

   "rb+"或者"r+b"

   "wb+""w+b"

   "ab+""a+b"

   成功:返回FILE*,失敗:返回NULL

<2>關閉文件:注意在文件操做失敗退出前應該關閉打開的全部文件資源

   int fclose(FILE* fp);

   成功:返回0,失敗:返回-1

<3>文件的操做

   1.讀寫單個數據函數

   int fputc(int c, FILE* fp);將一個字符寫到文件中

   成功:返回c的值,失敗返回-1

   int fgetc(FILE* fp);從文件中讀取一個字符並返回其ASC碼對應的值,失敗返回-1

   2.讀寫數據塊函數

   size_t fread(buffer,size,count,fp);//從fp中讀取count個大小爲size字節的元素的數據放入buffer中

   size_t fwrite(buffer,size,count,fp);//從buffer中取出count個字節大小爲size的元素,並向fp中寫入

   成功:返回成功讀寫的元素個數

   3.其餘讀寫方式:

   fgets

   fputs

   fprintf

   fscanf

<4>文件定位

   文件中有一個位置指針,指向當前讀寫的位置,操做完當前的元素以後,位置指針自動指向下一個元素

   int fseek(FILE* fp,long offset,int whence);

   offset:偏移量

   whence:起始處

   文件開始:0SEEK_SET

   文件當前:1SEEK_CUR

   文件末尾:2SEEK_END

   fseek(fp,-1*sizeof(struct),SEEK_CUR);//從當前指針位置後退一個結構體大小的字節,做爲指針的位置

   成功:返回0,失敗:返回-1

   另外還有其餘的方式:

   rewind

   ftell

相關文章
相關標籤/搜索