ファイルを循環バッファとして動作させる必要があります。あるスレッドから、データを書き込む必要があります。別のスレッドから、ファイルから読み取った。ただし、ファイルのサイズは固定です。
何か案が?
ファイルを循環バッファとして動作させる必要があります。あるスレッドから、データを書き込む必要があります。別のスレッドから、ファイルから読み取った。ただし、ファイルのサイズは固定です。
何か案が?
スレッドは他のスレッドの位置を知っていると思います。この場合、ライターはファイルに追加し、 に到達するまでその位置を増やすことができますMAXSIZE
。次に、位置 0 を探してラップアラウンドし、その位置がリーダーの位置よりも小さい限り、古いコンテンツを上書きし続けます。その後、ブロックする必要があります。同時に、リーダーは、ライターの位置に到達するまで、必要に応じて読み取りとラップアラウンドを行うことができます。
つまり、標準のメモリ バッファー内循環と大差ありません。あなたの場合、ファイルを使用する必要があると確信していますか? また、生産者と消費者の問題について調査することも検討してください。
名前付きパイプの使用を検討することもできます。
使用する言語について言及されていないため、一般的な回答しか提供できません。ファイルの末尾を超えて読み取るときに、ファイルの先頭を探してそこから読み取りを再開する抽象化を記述します。
複数のスレッドからのファイルへの書き込みと読み取りには、適切な同期が必要であることに注意してください。