文章目录
- 基础IO要讲的知识点介绍
- 引入fd(文件描述符)
基础IO要讲的知识点介绍
1.复习一下C语言的接口
2.直接使用系统接口
3.分析系统接口的细节,引入fd(文件描述符)
4.fd的周边问题(fd的理解、fd和file的关系、fd分配规则、fd重定向…)
引入fd(文件描述符)
我们在前面一直在使用fd那么fd到底是什么呢?
先从数字层面理解,我们知道每打开一个文件就会有fd,那么这些fd到底是多少呢?
来一段代码
运行代码:
我们看到fd是一串连续的数字。
但是现在有些问题?
问题一:0、1、2去哪了?
问题二:为什么是这样的数据?
问题一答案:
因为系统默认打开了三个文件:他们占用了0、1、2
stdin 0
stdout 1
stderr 2
证明:
向stdout输出数据
运行代码
我们看到程序,确实向(显示器)标准输出输出了数据。
从stdin读取数据。
read的返回值,为实际读取到的内容个数。
我们看到确实从0中读取到了数据。
我们知道C语言接口是返回的FILE。
那么FILE是什么?是结构体!
FILE是C标准库提供的一般内部有多种成员!
从之前我们又学到C文件库函数内部一定要调用系统接口的!
那么在系统角度是认FILE还是认fd?只认fd
所以FILE结构体里封装了fd。
证明:
代码
运行代码: