带缓冲的I/O和不带缓冲的区别及联系

EG: fwrite <===> write

不带缓冲的
并不是指内核中不提供缓冲,而是只是单纯的系统调用,不是库函数的调用。只是进程中不提供缓冲功能(内核中还是提供缓冲的)====write

带缓冲的
指进程对输入输出流进行了改进,提供了一个缓冲当fwrite函数网磁盘写数据的时候,先将数据写入缓冲区,达到一定条件时(缓冲区满//刷新缓冲区),这时候将数据一次性送往内核提供的页缓存,再写入磁盘。 相当于双重缓存。

带缓存的会先写入缓冲区,所以带缓存的会比带缓存的写入磁盘的次数少。提高了磁盘的I/O效率,优化了磁盘的写操作,需要及时的将缓冲区数据写入到磁盘中。

猜你喜欢

转载自blog.csdn.net/m18706819671/article/details/80406115
今日推荐