TOC \o "1-3" \h \u 27960 一、 标准I/O 介绍 2
2596 (一) 文件的概念和类型(了解) 2
21079 1. 文件的概念: 2
27271 2. 文件类型 2
9870 (二) 标准I/O的定义(了解) 2
8168 (三) 流(FILE)的含义(了解) 3
14839 (四) 流的缓冲类型(熟练) 3
28194 二、 打开、关闭流(熟练) 4
19594 (一) 打开流 4
31433 (二) fopen - mode 参数 4
9497 (三) fopen - 新建文件权限 5
4780 (四) 处理错误信息 5
8540 (五) 关闭流 6
22594 (六) 思考 7
3870 三、 按字符输入输出 7
2708 (一) 读写流 7
24581 (二) 按字符输入(熟练) 7
20581 (三) 按字符输出(熟练) 8
5275 (四) 思考 9
4517 四、 按行输入/输出 11
24692 (一) 按行输入(熟练) 11
31090 (二) 按行输出(熟练) 11
22693 (三) 思考 12
19767 五、 按指定对象输入/输出(熟练) 13
18159 (一) 按对象读写 13
27048 (二) 思考 14
20300 六、 流的刷新/定位/检测 15
31911 (一) 刷新流(熟练) 16
17077 (二) 定位流(熟练) 17
2907 (三) 判断流是否出错和结束(了解) 18
4453 七、 sprintf / fprintf(熟练) 18
3588 (一) 格式化输出 18
8162 (二) 思考和练习 19
30535 八、 day1作业 20
7565 九、 day2 作业 21
标准I/O 介绍
I/O :input / output 的API(函数)
在linux下对I/O的操作有:标准I/O 和 文件I/O
文件的概念和类型(了解)
文件的概念:
文件是一组相关数据的有序集合
文件类型
r:常规文件、普通文件。如:文本文件,可用vi,cat的。还有二进制文件
d:目录文件、文件夹。
c:字符设备文件char。每一个文件代表一个设备,访问设备时把设备当文件
b:块设备文件block。每一个文件代表一个设备,访问设备时把设备当文件
p:管道文件:进程间通信的机制,不同的进程通过管道进行数据交换(进程课)
s:套接字文件:网络通信、本地通信(文件代表地址)(网络课程)
l:符号链接文件:快捷方式
不同的操作系统,所支持的文件类型不同
标准I/O的定义(了解)
标准I/O的定义:
由ANSI C标准定义,是C库中定义好的一些用于输入和输出的一组函数。
主流操作系统上都实现了C库
标准IO的特点:
通过缓冲机制减少系统调用,实现更高的效率
缓冲机制:
缓冲机制是在应用程序中的。使得应用程序不需要根据应用程序的调用限制一点点的通过系统调用来获取硬件上的信息,可以一次获取很多信息(根据缓冲区的大小)到缓冲区。应用程序读取数据会先从缓冲区读取,若缓冲区中有数据就可以直接调用,而不需要再进行系统调用;如果缓冲区中没有数据了,就需要再读取一批数据到缓冲区。
系统调用:
运行程序时有两种方法:
在硬件之上来运行程序。
代码直接在硬件、内存中运行。代码可以直接操作硬件,只要知道地址,就可以用指针来访问相应的寄存器等,这种方式又被叫做裸机代码。这种情况下实际上就是没有操作系统的。单片机开发就属于这样的方式。
在硬件之上,先运行操作系统。
所有对硬件的操作都需要通过操作系统来完成,也就是操作系统保护着硬件。操作系统是多任务的,如果不需要通过操作系统直接多任务操作硬件,这样会非常危险,因为任何恶意程序都可以直接破坏整个系统。所以不允许应用程序直接操作硬件。
因此想要操作硬件,需要通过操作系统所提供的访问接口,通过这个接口,应用程序向操作系统发出请求,由操作系统去处理这些请求,来完成对硬件的实际的操作,并且把结果返回给应用程序。
这层接口就叫系统调用
·有操作系统的情况下,应用程序要访问硬件必须通过操作系统提供的系统调用接口来完成。
·不同的操作系统的系统调用接口是不一样的,不兼容。
流(FILE)的含义(了解)
FILE(结构体):
标准I/O用一个结构体类型来存放打开的文件的相关信息
是系统的头文件中定义好的。
标准I/O的所有操作都是围绕FILE来进行
一个FILE结构体就代表一个打开的文件
流:(stream)
FILE又被称为流,分为:文本流/二进制流
Windows区分文本流和二进制流,主要