Я предполагаю, что поток знает позицию другого потока. В этом случае писатель может добавить файл и увеличить его позицию, пока он не достигнет MAXSIZE
. Затем он должен обернуться, пытаясь найти позицию 0 и продолжить перезаписывать старое содержимое, пока его позиция меньше позиции считывателя, после чего он должен блокироваться. В то же время читатель может при необходимости читать и оборачиваться, пока не достигнет положения писателя.
Другими словами, он не сильно отличается от стандартного циркуляра в буфере памяти. Вы уверены, что использование файла необходимо в вашем случае? Вы также можете рассмотреть вопрос о проблеме производитель-потребитель .