虚拟文件系统(VFS,visal file system)
封装底层细节,提供接口
普通文件系统
-ext4
-fat32
-ubifs
特殊文件系统
-进程文件系统procfs,挂载在/proc,存放进程相关信息相当于windows的任务管理器
-设备文件系统devfs,挂载在/dev,存放硬件操作接口
系统IO编程
-直接调用操作系统提供的函数,如open read write
-不带缓冲机制,系统IO可以操作普通文件与驱动文件
标准IO编程
-使用glib等第三方库函数(实际上是封装操作系统提供的系统IO,再给用户使用)如 fread fopen fwrite
-带缓冲机制, 标准IO只可以操作普通文件。提供多种的格式的输入输出如(字符串、整形......)
缓冲的作用与刷新条件
作用:
在进行数据的读写的过程中,先不把数据直接写入或者读入设备中,而是写或者读入内存空间,当满足一定条件时候,将该空间的文件写入文件或设备中。这样可以减少操作系统调用驱动程序或文件的次数,提高读写的速度,和代码的效率。因为每一次系统调用的过程都是很浪费系统资源的。
缓冲区何时会被刷呢&刷新方法:
-缓冲区已满
-强制刷新
-程序结束
-关闭文件
调用exit()进程结束时会刷新缓冲区,return会自动调用exit(),注意_exit()不会刷新缓冲区
当缓冲区满了也会被刷新出来
可通过fflush强制将缓冲流中的数据复制到内核缓冲区中
流被关闭时也会被刷出来,如调用fclose函数
行缓冲遇见'\n'会被刷新出来