该问题与Buffered write cause inconsistent data有关,但有所不同。由于这是读取操作中的问题,因此不是写入操作。
如果我将一些数据读取到读取缓冲区中,然后尝试将数据写入磁盘上读取缓冲区所覆盖的文件部分,那么读取缓冲区将包含错误的数据。
对于这个问题,我有两种解决方法,但也不太好:
在执行任何写操作之前,请使读缓冲区无效,因为写操作可能会更改读缓冲区所覆盖的数据部分。但是此解决方案会降低性能。
将数据写入文件时,如果部分数据也位于读取缓冲区中,则也尝试更新读取缓冲区。但是这种解决方案很复杂。
谢谢