第一点文件缓冲区是什么
文件缓冲区其实是一段内存,他不是有操作系统维护的,是由上层的语言库维护
其中以_IO开头的就是我们平时读写文件的缓冲区
我们在读写文件时数据不会直接传输,会先存储到缓冲区之中,然后再以特定的刷新策略,把数据冲文件的缓冲区中刷新出来
缓冲区的刷新策略有3种
1. 直接刷新(即刚写入就刷新)
2. 行刷新(遇到\n就会触发刷新机制连同\n在内的所有数据全部刷新出去)对应实例 显示器
3. 满内存刷新(数据缓冲区达到数据存取的上限)对应实例 磁盘
我们可以通过以下代码感受一下
我们想磁盘中写入数据发现有俩份,这其实是因为子进程会继承父进程的代码和数据,当其中一个进程要刷新缓冲区的时候会发生写时拷贝,所以当父子进程结束是会有俩份数据。