linux文件操作

linux都是以文件为单位对数据进行管理的,每一个打开的文件在内存中都有一个结构体与之相对应,

这个结构体保存文件信息:文件名、大小、位置、权限等等

typedef struct {成员列表} FILE;

文件的操作:

<1>打开FILE* fopen(const char* path, const char* mode);

   path:包含文件全路径信息的字符串

   mode:访问文件的方式

   文本文件:

   "r"只读文件必须存在

   "w"写入文件不存在则创建,否则覆盖

   "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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章