JavaSE Linxu磁盘 跨域 vue aircrack-ng ios cookies model underscorejs Uploadify Font Awesome vue钩子函数 mysql或者条件 java创建字符串数组 mysql将时间戳转换成日期 mysql连接 python的str python语言 java开发环境 stringjava java安装环境 java线程中断 java比较字符串 java常用数据结构 m4a转mp3格式转换器 蒙文字体 无限视距 linux运维之道 古风头像女动漫 js获取数组长度 草图大师版本转换器 cad乘号 kms工具 脚本文件 dos命令大全及用法 淘宝店铺会员 urlpattern 沙盘sandboxie 虚拟主机软件 3dmax人物建模
当前位置: 首页 > 学习教程  > 编程语言

C语言文件基础

2021/1/28 23:29:27 文章标签:

文件1.数据流2.缓冲区(Buffer)3.文件类型4.文件存取方式5.C语言提供的标准文件1.数据流 指程序与数据的交互是以流的形式进行的。进行C语言文件的存取时,都会先进行“打开文件”操作,这个操作就是在打开数据流,而“关闭文件”操作就是关闭数…

文件

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

1.数据流

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

2.缓冲区(Buffer)

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

C语言的文件处理功能依据系统是否设置“缓冲区”分为两种:一种是设置缓冲区,另一种是不设置缓冲区。由于不设置缓冲区的文件处理方式,必须使用较低级别的V/O函数(包含在头文件io.h和fcnt.h中)来直接对磁盘存取,这种方式的存取速度慢,并且由于不是C的标准函数,跨平台操作时容易出问题。下面只介绍第一种处理方式,即设置缓冲区的文件处理方式。

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

3.文件类型

分为文本文件和二进制文件两种。

文本文件是以字符编码的方式进行保存的。二进制文件将内存中数据原封不至文件中,适用于非字符为主的数据。如果以记事本打开,只会看到一堆乱码。

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

4.文件存取方式

包括顺序存取方式和随机存取方式两种。

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

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

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

通常把显示器称为标准输出文件,printf就是向这个文件输出数据;通常把键盘称为标准输入文件,scanf 就是从这个文件读取数据。

下面为常见硬件设备所对应的文件

文件硬件设备
stdin标准输入文件,一般指键盘scanf()、getchar()等函数默认从stdin获取输入
stdout标准输出文件,一般指显示器printf()、putchar()等函数默认向stdout输出数据
stderr标准错误文件,一般指显示器perror()等函数默认向stderr获取输出数据
stdprn标准打印文件,一般指打印机

我们不去探讨硬件设备是如何被映射成文件的,在C语言中硬件设备可以看成文件,有些输入输出函数不需要你指明到底读写哪个文件,系统已经为它们设置了默认的文件。

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


本文链接: http://www.dtmao.cc/news_show_650221.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?