什么是IO如何理解IO?
IO就是输入与输出
I:Input:从键盘拷贝数据至内存中
O:Output:从内存中拷贝数据到终端上
因为Linux平台基本思想为:一切皆文件
所以
对于IO可以再次理解位:
I:从文件中拷贝数据到内存中去
O:从内存中拷贝数据到文件中去
IO的分类及不同IO的区别
IO分为两种:
(1)标准IO(高级磁盘IO)使用库函数
(2)文件IO(低级磁盘IO)使用系统调用函数
区别:
标准IO:
- ANSI(美国国家标准协会)及ISO(国际化标准组织)联合定义的一套有关于C语言的标准
- 通过缓冲机制减少系统调用的次数,保证减少系统的开销
- 通过文件流(文件指针)来操作文件
- 应用于各种平台(可移植性比较好)
文件IO:
- POSIX(可移植的操作系统接口)提供的一组专门适配于UNIX平台的一套API
- 没有缓冲机制(每一次操作都是需要经过系统调用)
- 通过文件描述符来操作文件
- 只能用于UNIX平台上
系统调用函数与库函数
区别:
1.库函数处于用户空间,系统调用函数处于内核空间
2.库函数的开销比系统调用函数小
3.C库提供的函数是基于系统调用封装起来的(使用库函数最终还是会使用系统调用函数)
4.系统调用函数是由操作系统提供给用户来访问内核的一组接口,属于系统级别的操作
5.库函数面向的对象是用户,系统调用则面向底层