C语言文件操作

  • 流是一个动态的概念,把一个字节比喻成一滴水,则字节在设备、文件、程序之间的传输就是流,类似于水在管道中的传输,流是对输入输出的一种抽象,也是对传输信息的一种抽象。
  • 程序只关心是否正确输入了要读取的字节数据,特定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结构体。
posted @   肖肖凯  阅读(75)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示