我们对文件的概念已经非常熟悉了,比如常见的 Word 文档、txt 文件、源文件等。文件是数据源的一种,最主要的作用是保存数据。

在操作系统中,为了统一对各种硬件的操作,简化接口,不同的硬件设备也都被看成一个文件。对这些文件的操作,等同于对磁盘上普通文件的操作。例如:

通常把显示器称为标准输出文件,printf 就是向这个文件输出数据;

通常把键盘称为标准输入文件,scanf 就是从这个文件读取数据。

常见硬件设备所对应的文件

文件                                                                      硬件设备

stdin                                                                      标准输入文件,一般指键盘;scanf()、getchar() 等函数默认从 stdin 获取输入。

stdout                                                                    标准输出文件,一般指显示器;printf()、putchar() 等函数默认向 stdout 输出数据。

stderr                                                                    标准错误文件,一般指显示器;perror() 等函数默认向 stderr 输出数据(后续会讲到)。

stdprn                                                                    标准打印文件,一般指打印机。

​我们不去探讨硬件设备是如何被映射成文件的,大家只需要记住,在C语言中硬件设备可以看成文件,有些输入输出函数不需要你指明到底读写哪个文件,系统已经为它们设置了默认的文件,当然你也可以更改,例如让 printf 向磁盘上的文件输出数据。

操作文件的正确流程为:打开文件 --> 读写文件 --> 关闭文件。文件在进行读写操作之前要先打开,使用完毕要关闭。

所谓打开文件,就是获取文件的有关信息,例如文件名、文件状态、当前读写位置等,这些信息会被保存到一个 FILE 类型的结构体变量中。关闭文件就是断开与文件之间的联系,释放结构体变量,同时禁止再对该文件进行操作。

在C语言中,文件有多种读写方式,可以一个字符一个字符地读取,也可以读取一整行,还可以读取若干个字节。文件的读写位置也非常灵活,可以从文件开头读取,也可以从中间位置读取。

文件流

在《载入内存,让程序运行起来》一文中提到,所有的文件(保存在磁盘)都要载入内存才能处理,所有的数据必须写入文件(磁盘)才不会丢失。

数据在文件和内存之间传递的过程叫做文件流,类似水从一个地方流动到另一个地方。数据从文件复制到内存的过程叫做输入流,从内存保存到文件的过程叫做输出流。

如果你也想成为程序员,想要快速掌握编程,赶紧关注小编加入学习企鹅圈子吧!

里面有资深专业软件开发工程师,在线解答你的所有疑惑~编程语言入门“so easy”

资料包含:编程入门、游戏编程、课程设计等。

免费学习书籍:

 

免费学习资料:

 

文件是数据源的一种,除了文件,还有数据库、网络、键盘等;数据传递到内存也就是保存到C语言的变量(例如整数、字符串、数组、缓冲区等)。

我们把数据在数据源和程序(内存)之间传递的过程叫做数据流(Data Stream)。

相应的,数据从数据源到程序(内存)的过程叫做输入流(Input Stream),从程序(内存)到数据源的过程叫做输出流(Output Stream)。

输入输出(Input output,IO)是指程序(内存)与外部设备(键盘、显示器、磁盘、其他计算机等)进行交互的操作。

几乎所有的程序都有输入与输出操作,如从键盘上读取数据,从本地或网络上的文件读取数据或写入数据等。通过输入和输出操作可以从外界接收信息,或者是把信息传递给外界。

我们可以说,打开文件就是打开了一个流。

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/zuishuaideou/p/14271933.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!

相关课程