流
- 流是一个动态的概念,把一个字节比喻成一滴水,则字节在设备、文件、程序之间的传输就是流,类似于水在管道中的传输,流是对输入输出的一种抽象,也是对传输信息的一种抽象。
- 程序只关心是否正确输入了要读取的字节数据,特定IO设备的细节对程序员是隐藏的。
文本流
-
文本流即以文本模式读取文件。文本流特定在不同操作系统中可能不同,比如关于文本行的最大长度,C标准规定至少允许254个字符。另一个不同特性是文本行的结束方式,windows中以一个回车符和一个换行符结尾,Linux中则只使用一个换行符。
-
但是不同系统中的这种差异性由标注C库函数给抹除了,所以程序员不用操心,即库函数负责外部形式与内部形式之间的翻译。例如,windows系统中,输出时,文本的换行符被写成一对回车/换行符,但是输入时,库函数直接把文本中的回车符丢弃。这种不必考虑文本的外部形式而操纵文本的能力简化了可移植程序的创建。
二进制流
- 二进制流完全根据它们从文件或设备读取的形式读入到程序中,不做任何改变。
- 二进制流适用于非文本数据,但是如果不希望C的IO函数修改文本文件的行末字符,则也可将二进制流用于文本文件。
标准C函数IO
- 标准C函数底层是调用的操作系统提供的系统调用来操作文件,但是C函数中加了缓冲区这一概念,因此用标准C函数进行IO时并不直接跟外部设备打交道,而是跟缓冲区打交道。
文件流总览
- 使用C语言标准库函数来执行C程序中的文件IO操作非常方便。
** 程序为处于活动状态的每个文件声明一个指针变量,其类型为FILE *,指向一个FILE结构体。文件处于活动状态时由流使用。
** 流通过fopen函数打开。打开时需要指定访问文件或设备的路径,以及访问方式(读写等)。fopen和操作系统验证文件或设备是否存在,并初始化FILE结构体。
** 根据需要对文件进行读写操作。
** 调用fclose函数关闭流,这使得存储于缓冲区中的数据被正确写入到文件中,并且释放了FILE结构体。
标签:文件,函数,二进制,C语言,IO,操作,文本,库函数 来源: https://www.cnblogs.com/chkplusplus/p/16379455.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。