IO的理解:
输入:从键盘拷贝数据到内存中去
输出:从内存拷贝数据到显示屏去
Linux下一切皆文件:(7种)
- :普通文件
d:目录文件 (open打不开)
l:链接文件(软链接文件)
c:字符设备文件(open/close)
b:块设备文件
p:管道文件
s:套接字文件
总结:对于管道,套接字,设备文件都被称为文件
升华一下下对于IO的理解:
输入:从文件中拷贝数据到内存中去
输出:从内存中拷贝数据到文件中去
因此:文件----》是一个比较大的概念(该文件分别指代键盘和显示屏)
但是,接下来学习的文件:也是对于普通文件的操作(1.txt,test.c)
思考:之前写的代码,一旦运行结束之后,变量的值就会被释放掉(因为在内存中存储着)
----》能不能做到将数据保存在一个程序运行结束之后,其值还可以看到这么一个效果?
----》可以(得通过文件的操作实现)
但是:
一些小型的数据可以通过文件来操作
一些大型的数据需要通过数据库来操作
- IO的分类
- 标准IO(高级磁盘IO)
- 文件IO(低级磁盘IO)
- 标准IO和文件IO的区别
共性:都是对于输入以及输出相关的操作,只不过操作的体系架构不同
标准IO:
- 是由ANSI C 联合 ISO标准定义的
- 通过缓冲机制减少系统调用的次数,可以高执行效率
- 通过文件指针操作文件
- 跨平台
文件IO:
- 是由POSI X定义(POSIX--》可移植的操作系统接口)
- 非缓冲机制
- 通过文件描述符操作文件(fd文件描述符)
- 不能跨平台操作