C++进阶篇 day7
5.2
IO操作(外部文件操作)
标准IO与文件IO的区别
IO的概念
- IO:顾名思义就是输入输出,程序与外部设备进行信息交换的过程称为IO操作
- 最先接触的IO:#include<stdio.h>
IO的分类
- 标准IO:使用系统提供的库函数实现
- 文件IO:基于系统调用完成,每进行一次系统调用,进程会从用户空间向内核空间进行一次切换,当用户空间与内核空间进行切换时,进程就会进入一次挂起状态,从而导致进程执行效率低
- 文件IO与标准IO的区别:标准IO相比于文件IO而言,提供了缓冲区,用户可以将数据先放入缓冲区
中,等到缓冲区时机到了后,统一进行一次系统调用,将数据刷入内核空间
文件IO接口:open/close、read/write、lseek
标准IO
实现原理

FILE结构体
- FILE结构体是系统提供的用于描述一个文件全部信息的结构体
- FILE结构体的原形
点击查看代码
struct FILE
{
char * _IO_buf_base; //缓冲区的起始地址
char * _IO_buf_end; //缓冲区终止地址
int _fileno; //文件描述符,用于进行系统调用
};
- 特殊FILE指针,这三个指针,全部都是针对于终端文件而言的,当程序启动后,系统默认打开的
三个特殊文件指针 - stderr: 标准出错指针
- stdin: 标准输入指针
- stdout: 标准输出指针

浙公网安备 33010602011771号