标准IO和文件IO(好文转载) 缓存io和非缓冲io

缓存io和非缓冲io

https://www.cnblogs.com/cavehubiao/p/3981482.html

库函数与系统调用

https://blog.csdn.net/lht1314tttt/article/details/79150776

总结:

    无缓存IO操作数据流向路径:数据——内核缓存区——磁盘
    标准IO操作数据流向路径:数据——流缓存区——内核缓存区——磁盘

 1 //标准IO和文件IO的区别?
 2     文件IO,属于系统调用,可以直接访问到内核,在用户层无缓存区,
 3         使用文件描述符表示打开的文件,一般用于访问普通文件、设备文件、管道文件
 4     标准IO,属于库函数,将系统调用进行更多功能的封装,在用户层有缓冲区
 5         使用流指针表示打开文件,通常只用于访问普通文件。
 6     标准I/O可以看成是在文件I/O的基础上封装了缓冲机制。先读写缓冲区,必要时再访问实际文件,从而减少了系统调用的次数。
 7 
 8 //库函数与系统调用的区别
 9     (1)库函数是语言或应用程序的一部分,而系统调用是内核提供给应用程序的接口,属于系统的一部分
10     (2)库函数在用户地址空间执行,系统调用是在内核地址空间执行,库函数运行时间属于用户时间,
11        系统调用属于系统时间,库函数开销较小,系统调用开销较大
12     (3)库函数是有缓冲的,系统调用是无缓冲的
13     (4)系统调用依赖于平台,库函数并不依赖

*标准IO和文件IO的区别?**文件IO,属于系统调用,可以直接访问到内核,在用户层无缓存区,使用文件描述符表示打开的文件,一般用于访问普通文件、设备文件、管道文件标准IO,属于库函数,将系统调用进行更多功能的封装,在用户层有缓冲区使用流指针表示打开文件,通常只用于访问普通文件。标准I/O可以看成是在文件I/O的基础上封装了缓冲机制。先读写缓冲区,必要时再访问实际文件,从而减少了系统调用的次数。**库函数与系统调用的区别**(1)库函数是语言或应用程序的一部分,而系统调用是内核提供给应用程序的接口,属于系统的一部分(2)库函数在用户地址空间执行,系统调用是在内核地址空间执行,库函数运行时间属于用户时间,   系统调用属于系统时间,库函数开销较小,系统调用开销较大(3)库函数是有缓冲的,系统调用是无缓冲的(4)系统调用依赖于平台,库函数并不依赖

猜你喜欢

转载自www.cnblogs.com/y4247464/p/12537524.html