ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

20201320第二周学习笔记

2022-09-11 13:01:19  阅读:150  来源: 互联网

标签:文件 缓冲 读写 笔记 第二周 模式 指针 20201320 库函数


I/O库函数

本章讨论了 I/O库函数;详细介绍了IO库函数的算法,包括fread、 fwrite和fclose的算法,重点介绍了它们与read、write和close系统调用的交互;介绍了 I/O 库函数的不同模式,包括字符模式、行模式、结构化记录模式和格式化IO操作;阐述了文件流缓冲方案,并通过示例程序说明了不同缓冲方案的效果;阐释了有不同参数的函数以及如何使用stdarg宏访问参数。

系统调用是文件操作的基础,但它们至支持数据块的读/写。I/O库函数是一系列文件操作函数,既方便用户使用,又提高了整体效率。

I/O库函数与系统调用

系统调用函数:open()、read()、write()、lseek()、close()
I/O库函数:fopen()、fread()、fwrite()、fseek()、fclose()

I/O库函数算法

  • fread算法

size_t fread(void* buff,size_t size,size_t count,FILE* stream)
作用:从文件中读入数据到指定的地址中

  • fwrite算法

fwrite()函数以二进制方式向文件流中写入数据

  • fclose算法

int fclose(FILE *stream)
功能:关闭一个文件流,使用fclose就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区

I/O库模式

r :只读模式,1)文件必须存在。2)读指针指向文件开始处 3)调用write()会报错
w: 只写模式, 1)若文件不存在,创建文件。2)文件存在,清空文件。3)写指针指向文件开始处 。4)调用read()会报错
a: 追加模式(只写)1)若文件不存在,创建文件 。2)文件存在,不清空文件,而是在文件的结尾处继续写入 3)写指针直线文件结尾处 4)调用read()会报错
r+: 读写模式, 1)文件必须存在。2)打开可读写文件,读写指针均在文件头
w+: 读写模式 ,1)若文件不存在,创建文件。 2)若文件存在是可读写文件,清空文件。3)读写指针均在文件头
a+:读写模式 , 1)若文件不存在,创建文件。2)文件存在,不清空文件。3)读指针在开始位置,写指针在文件结尾位置
字符模式I/O
行模式I/O
格式化I/O
内存中的转换函数:sscanf()和sprintf

sscanf()和sprintf()并非I/O函数,而是内存中的数据转换函数。

文件流缓冲

每个文件流都有一个FILE结构体,其中包含一个内部缓冲区。对文件流进行读写需要遍历FILE结构体的内部缓冲区。文件流可以使用三种缓冲方案中的一种。

  • 无缓冲:从非缓冲流中写入或读取的字符将尽快单独传输到文件或从文件中传输。

  • 行缓冲:遇到换行符时,写入行缓冲流的字符以块的形式传输。

  • 全缓冲:写入全缓冲流或从中读取的字符以块大小传输到文件或从文件传输。这是文件流的正常缓冲方案。

文件操作是什么?

文件为抽象数据类型。为了正确定义文件,需要考虑可以对文件执行的操作。操作系统可以提供系统调用,来创建、写入、读取、重新定位、删除及截断文件。

 

标签:文件,缓冲,读写,笔记,第二周,模式,指针,20201320,库函数
来源: https://www.cnblogs.com/sztsao/p/16653638.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有