我们都知道多进程同时操作文件会出现问题,但是具体会出现什么问题呢?不知道大家有没有仔细研究过,今天我就带大家一起来研究一下。
在操作文件之前,很有必要了解一下内核中文件的存储和访问方式:
这张图摘自《APUE》,我觉得画的很好,所以就没有自己再画了。
从图中能够看出每个进程都有自己独立的一个进程表项,由文件指针指向文件表项;在文件表项中两个很重要的东西:状态标志和当前文件偏移量,问什么说它很重要,因为在多进程写文件出错时,一般都是由文件偏移量引起的(这个后面会讲到);然后由V节点指针指向一个V节点表(关于i节点我会在另外的博客中阐述)
第一种情况:父子进程同时写一个文件<