linux环境C开发系列3-文件

来源:互联网 发布:和风天气api json解析 编辑:程序博客网 时间:2024/06/06 23:55

概述

文件的输入输出操作时设备进行操作的基础。这类操作分为两类——–非缓冲文件操作和缓冲文件操作。
非缓冲文件操作适合小规模文件的读写和对实时性要求比较高的设备的数据通信,这部分操作时系统调用提供的;
缓冲文件操作索面想的是大规模非实时性数据处理问题,这类操作时标准输入输出库提供的。

非缓冲文件操作

通过文件标识符找到文件。
3个系统预先分配好的文件标识符:
0:标准输入,终端输入;
1:标准输出,终端输出;
2:标准错误,系统中存放错误信息的堆栈;

1、read(文件标识符,内存卡指针,内存块长度),用于从文件中将信息读取到制定的内存区域中。
返回值是实际读取到的长度,如果运行错误,则返回-1;

2、write(文件标识符,内存卡指针,内存块长度),用于将指定长度的data写入到文件中;

3、lseek(文件标识符,偏移长度,起始位置),
在程序中运行指定文件指针具体位置,其中SEEK_SET表示从文件开始处作为起始位置;SEEK_CUR表示以当前位置作为起始位置;
SEEK_END表示以文件结尾作为起始位置。

缓冲文件操作

此类操作中,数据放在缓冲区中,只有当数据长度即将超过缓冲区范围或者时间周期到达时,这些数据才会被送往制定地方,可以减少对物理设备的数据接口访问次数,从而降低大规模数据在IO操作的系统开支。标准输入输出库定义了文件流结构指针FILE *作为文件标识。

有3个文件流是系统预定义的:
stdin:标准输入;
stdout:标准输出;
stderr:标准错误;

1、FILE *fopen(路径,打开方式),
2、fclose(FILE *) ,fclose执行时,所有放在缓冲区中的数据写回到文件中,如果保存成功,返回-1,如果失败,则0。
3、fread(缓冲区指针,长度,数量,文件流指针);
4、fwrite();
5、fflush(fp),
6、fgetpos(文件流指针,fpos_t*位置);
7、fsetpos(文件流指针,const fpos_t*位置);
8、ftell(文件流指针);
9、rewind(文件流指针);

0 0
原创粉丝点击