缓存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)系统调用依赖于平台,库函数并不依赖