Linux内核入门(三)——read、fread、fgets、fgetc函数
前言
上一篇博客讲到,使用open、close、read、write等函数,处理上述IO函数外,我们还可以使用c函数库提供的标准IO读写函数对文件进行操作。
下图展示了,标准IO和文件IO之间的区别,简单来说就是,文件IO是由系统调用提供的,可以直接对文件读写的函数。而标准IO则经过一个叫“c函数库”的中间商,实现对文件的读写。
标准IO里面的函数众多,可分为三种:全缓存,行缓存,无缓存
哪来的缓存这个东西呢?
缓存哪里来?
在使用标准IO函数的时候,因为有C函数库这个中间商存在,所以会多出来一个库缓存,干嘛用的呢,就是,用户想要和内核交换数据,不是直接交换了,数据得先在这个“库缓存”里待一会,待到什么时候呢
全缓存,行缓存,无缓存区别
很简单
行缓存是遇到‘\n’(换行符),或者行缓存被写满,就把缓存里的东西拿出来
全缓存就是写满缓存后,再把缓存里的东西拿出来
无缓存,就是根本不经过缓存。
除此之外:遇到:fclose函数,fflush函数,缓存里的东西也会被赶出来。