Буферизированная причина записи противоречивых данных - PullRequest
0 голосов
/ 07 июля 2019

Я занимаюсь разработкой класса файлов C ++, который поддерживает буферизованную функцию чтения и записи.

Однако я столкнулся с проблемой. Перед тем, как данные в буфере записи будут записаны на диск, если я попытаюсь прочитать данные из файла на диске, то считанные данные будут неправильными. Как решить проблему?

У меня есть два решения, но оба кажутся не очень хорошими:

  1. Всегда очищайте буфер записи перед любыми операциями чтения. Но это снизит производительность.

  2. При попытке чтения данных проверьте, находятся ли данные для чтения в буфере записи или в файле на диске, или в части в буфере записи, и в части в файле диска. Затем, основываясь на результатах проверки, получите данные из буфера записи или файла на диске. Это решение довольно сложное.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...