Я занимаюсь разработкой класса файлов C ++, который поддерживает буферизованную функцию чтения и записи.
Однако я столкнулся с проблемой. Перед тем, как данные в буфере записи будут записаны на диск, если я попытаюсь прочитать данные из файла на диске, то считанные данные будут неправильными. Как решить проблему?
У меня есть два решения, но оба кажутся не очень хорошими:
Всегда очищайте буфер записи перед любыми операциями чтения. Но это снизит производительность.
При попытке чтения данных проверьте, находятся ли данные для чтения в буфере записи или в файле на диске, или в части в буфере записи, и в части в файле диска. Затем, основываясь на результатах проверки, получите данные из буфера записи или файла на диске. Это решение довольно сложное.
Спасибо