带缓存的I/O操作
来源:互联网 发布:软件打不开是什么原因 编辑:程序博客网 时间:2024/05/29 07:38
1、标准的I/O提供了三种类型的缓冲:全缓冲、行缓冲、不带缓冲
2、全缓冲:在填满标准的I/O缓冲区后才进行实际的I/O操作
3、行缓冲:当在输入和输出中遇到换行符是,标准的I/O库执行I/O操作
4、不带缓冲:标准的I/O库不对字符进行行缓冲储存
5、fopen
函数作用:打开文件
函数原型:FILE *fopen(const char *path, const char *mode);
函数参数:path --打开文件的路径
mode --打开文件的方式
mode权限:
r:打开只读文件,文件必须存在。
r+:打开读写文件,文件必须存在。
w:打开只写文件,文件不存在则创建。
w+:打开读写文件,文件不存在则创建。
a:以附加的形式打开只写文件,文件不存在则创建。(追加)
a+:以附加的形式打开读写文件,文件不存在则创建。
头文件:#include <stdio.h>
返回值:成功返回文件指针,失败返回NULL。
6、fclose
函数作用:关闭文件
函数原型:int fclose(FIFO * stream);
头文件:#include<stdio.h>
返回值:成功返回0,失败返回EOF
7、fputc
函数作用:写入字符
函数原型:int fputc(int c, FILE *stream);
函数参数:c --写入的字符
stream --写入字符的文件流
头文件:#include <stdio.h>
返回值:成功返回写入的字符,失败返回EOF。
8、fgetc
函数作用:读出字符
函数原型:int fgetc(FILE *stream);
函数参数:stream --读出字符的文件流
头文件:#include <stdio.h>
返回值:成功返回读取的字符,EOF表示到了文件尾。
9、 fputs
函数作用:写入字符串
函数原型:int fputs(const char *s, FILE *stream);
函数参数:s --写入的字符串
stream --写入字符串的文件流
头文件:#include <stdio.h>
返回值:成功返回写入的字符数,失败返回EOF。
10、 fgets
函数作用:读出字符串
函数原型:char *fgets(char *s, int size, FILE *stream);
函数参数:s --存放读取的字符串
size --读取的字节大小
stream --读出字符的文件流
头文件:#include <stdio.h>
返回值:成功返回s,失败返回EOF。
11、fwrite
函数作用:写入数据块
函数原型:size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
函数参数:ptr --写入的数据
size --写入的字节大小
nmemb --总共写入的字节大小
stream --写入的文件流
头文件:#include <stdio.h>
返回值:成功返回实际写入的nmemb数目,失败返回feof文件尾、ferror发生错误。
12、fread
函数作用:读取数据块
函数原型:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
函数参数:ptr --指向想要读取的数据空间
size --读取的字节大小
nmemb --实际读取的字节大小
stream --读取的文件流
头文件:#include <stdio.h>
返回值:成功返回实际读取到的nmemb数目,失败返回feof文件尾、ferror发生错误。
13、fseek
函数作用:文件流定位
函数原型:int fseek(FILE *stream, long offset, int whence);
函数参数:stream --定位的文件流
offset --移动位置(SEEK_SET文件开头 SEEK_CUR文件当前位置 SEEK_END文件末尾)
whence --(<0 向前,=0 当前位置,<0 向后)
头文件:#include <stdio.h>
返回值:成功返回0,失败返回-1。
14、 ftell
函数作用:读取文件流的位置
函数原型:long ftell(FILE *stream);
函数参数:stream --读取位置的文件流
头文件:#include <stdio.h>
返回值:成功返回当前位置的位置,失败返回-1。
思考:如何获得文件流的大小?
先用fseek移到文件流的末尾,再用ftell获得文件流的位置。
15、feof
函数作用:检测文件流是否到文件尾
函数原型:int feof(FILE *stream);
函数参数:stream --检测的文件流
头文件:#include <stdio.h>
返回值:如果文件流到了文件尾,则返回非0值。
16、 ferror
函数作用:检测文件流是否发生错误
函数原型:int ferror(FILE *stream);
函数参数:stream --检测的文件流
头文件:#include <stdio.h>
返回值:如果文件流有错误,则返回非0值。
17、 fscanf
函数作用:格式化字符串的输入
函数原型:int fscanf(FILE *stream, const char *format, ...);
函数参数:stream --输出的文件流
format --字符串格式
头文件:#include <stdio.h>
返回值:成功返回参数数目,失败返回-1,错误原因存于errno 中。
18、fprintf
函数作用:格式化输出文件
函数原型:int fprintf(FILE *stream, const char *format, ...);
函数参数:stream --输入的文件流
format --字符串格式
头文件:#include <stdio.h>
返回值:成功返回实际字符数,失败返回-1。
- 带缓存的I/O操作
- 带缓存的I/O操作
- 带缓存的I/O操作
- 0117 带缓存的I/O操作
- 不带缓存操作的I/O操作(1)
- 带缓存的流文件I/O操作
- 不带缓存的文件I/O操作 open/close
- 不带缓存的文件I/O操作 read/write
- 不带缓存的文件I/O操作 fcntl
- 不带缓存的I/O操作(2)
- 不带缓存的文件I/O操作
- 用带缓存的I/O操作写文件粘贴
- 带缓存的I/O操作代码示例(复习)
- Linux 系统 I/O编程-----不带缓存的I/O操作
- Linux 系统 I/O编程-----不带缓存的I/O操作
- 带缓存的和不带缓存的I/O操作
- Linux下的文件操作(不带缓存的I/O操作)
- 带缓存的I/O和不带缓存的I/O的区别
- mysql分组查询数据,将数据中null和''作为一组查询结果
- 大数据Spark “蘑菇云”行动第64课: 页面跳转功能分析与架构 A、B、C页面之间跳转率的计算方法
- vmware虚拟机上运行ubuntu14开机显示“无法应用原保存的显示器配置”问题的解决办法
- 学习echarts后的一点感悟
- hibernate中的三级缓存与加载
- 带缓存的I/O操作
- 解决用户不在sudoers文件中的问题
- 无中生有之突击NOIP(4)--搜索
- gradle
- Java之类的生命周期
- C语言中处理结构体的原理
- Map集合和Collection集合的区别
- 《Spring in Action》第四版第一章《将Spring付诸实践》读书笔记(二)
- HTML,CSS中判断IE版本的语句........