文件类型 bcd_lsp
文件的常见操作:
fopen/fclose
fgets/fputs
fgetc/fputc
fwrite/fread
FILE指针:每个使用的文件都在内存中开辟一段区域,用来存放文件的有关信息,这些信息背包寻到一个结构体中,该结构体的类型由系统定义,取名FILE。
标注Io操作对象是stream,在标准IO中,流由FILE*描述
流又分为文本流(以ascii存放)和二进制流(以二进制存放)
标准i偶的缓存方式分为全缓存,行缓存,不带缓存。
使用函数setbuf() setvbuf()可以更改缓存类型 -IONBF(不缓存) IOLBF(行缓存) FOFBF(全缓存)
不缓存:不阻塞
行缓存:出现\n时,将缓冲区的数据输出
全缓存:只有当数据填充满缓冲区或者退出程序或关闭文件后才会输出。
fflush()函数 强制刷新缓冲区(使用fclose()函数就,即关闭文件后,可强制刷新缓冲区)
1、打开流
FIFE *fopen(const char *path,const char *mode)
FIFE *freopen(const char *path,const char *mode,FIFE *stream) //关闭一个已打开的流,重新新打开一个文件
FIFE *fdopen(int filedes,con char *type)
example : fopen("/home/linux/test/1.c",“w”);
fopen的返回值是打开的文件指针。
2、关闭流
int fclose(FILE *stream);
返回值:成功0,失败EOF,并设置errno
3、读写流
int fgetc(FILE *stream); 返回值:成功返回读取到的字符,失败返回EOF
int fputc(int i,FILE *stream); 返回值:返回写入成功的字符,失败返回EOF
char *fgets(char *s,int size,FILE stream)
作用:从流中读取一个字符,一直遇到"\n"或者读了size-1个字符为止,存储到字符指针s所指的内存区域
返回值:返回s的地址
char *fputs(const char *s,FILE *stream) 将指针所指向的区域的数据读取到流上
size_t fread(void *ptr,size_t size,size_t nnum,FILE *stream)
size_t fwrite(void *ptr,size_t size,size_t nnum,FILE *stream)
4、操作流
int fseek(FILE *stream,long offset,int where)
long ftell(FIFE *stream) //返回当前的读写位置
void rewind() //将当前的读写位置移到开头
fsetops(FIFE *stream,long *ops) //将读写位置定位到pos位置
fgetops(FIFE *stream,long *ops) //返回当前的读写位置