C语言之初识C文件

目录

1.数据流
2.缓冲区
3.C文件的定义
4.C文件类型
5.C文件存取方式
6.C语言提供的标准文件

1. 数据流

1.1 什么是数据流?

     ①. 数据流(Data Stream) 指的是程序与数据的交互是以的形式进行的,进行 C 语言文件的存取时,都会先进行 “ 打开文件 ” 操作,这个操作就是在打开数据流,而 “ 关闭文件 ” 操作就是关闭数据流。

     ②. 数据流(Data Stream) 是一组有序,有起点和终点的字节的数据序列。包括输入流和输出流。

2. 缓冲区

2.1 什么是缓冲区?

     缓冲区(Buffer) 指在程序执行时,所提供的一块存储空间(在内存中),可用来暂时存放做准备执行的数据,它的设置是为了提高存取效率,因为内存的存取速度比磁盘驱动器快得多。

2.2 C语言的文件处理功能依据系统是否设置“缓冲区”分为两种:

     一种是设置缓冲区,另一种是不设置缓冲区。

     由于不设置缓冲区的文件处理方式,必须使用较低级别的 I/O 函数(包含在头文件 io.h 和 fcntl.h 中)来直接对磁盘存取,这种方式的存取速度慢,并且由于不是 C 的标准函数,跨平台操作时容易出问题。下面介绍第一种处理方式,即设置缓冲区的文件处理方式。

     当使用标准 I/O 函数(包含头文件 stdio.h 中)时,系统会自动设置缓冲区,并通过数据流来读写文件。当进行文件读取时,不会直接对磁盘进行读取,而是先打开数据流,将磁盘上的文件信息拷贝到缓冲区内,然后程序再从缓冲区中读取所需数据,如下图所示:
在这里插入图片描述

3. C文件的定义

3.1 什么是C文件?

     C 文件,是程序设计中的一个重要概念。所谓 “ 文件 ” 一般是指存储在外部介质上数据的集合。一批文件是以数据的形式存放在外部介质(如磁盘)上的。操作系统是以文件为单位对数据进行管理的,也就是说,如果想找存在外部介质上的数据,必须先按文件名找到指定的文件,然后再从该文件中读取数据。(注:C 文件定义来源于百度百科)

     C文件定义详情点击此处

4. C文件类型

     4.1 C 文件分为文本文件二进制文件两种。

     4.2 文本文件是以字符编码的方式进行保存的。二进制文件将内存中数据原封不动至文件中,适用于非字符为主的数据。

     4.3 其实,除了文本文件之外,所有的数据都可以算是二进制文件。二进制文件的优点在于存取速度快,占用空间小,以及可随机存取数据。

5. C文件存取方式

     5.1 C 文件存取方式包括顺序存取方式随机存取方式两种。

     5.2 顺序读取也就是从上往下,一笔一笔读取文件的内容。保存数据时,将数据附加在文件的末尾。这种存取方式常用于文本文件,而被存取的文件则称为顺序文件

     5.3 随机存取方式多半以二进制文件为主。它会以一个完整的单位来进行数据的读取和写入,通常以结构为单位。

6. C语言提供的标准文件

    6.1 通常把显示器称为标准输出文件,printf 就是向这个文件输出数据;通常把键盘称为标准输入文件,scanf 就是从这个文件读取数据。
在这里插入图片描述
    注:①. 我们不用去探讨硬件设备是如何被映射成文件的,我们只需要记住,在 C 语言中硬件设备可以看成文件,有些输入输出函数不需要你指明到底读写哪个文件,系统已经为它们设置了默认的文件。

           ②. 在默认情况下,stdout 是行缓冲的,它的输出会放在一个 buffer 里面,只有到换行的时候,才会输出到屏幕。而 stderr 是无缓冲的,会直接输出。


版权声明:本文为weixin_45332776原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。