2011-08-16 10 views
4

バイナリプログラムの出力をI/Oに非同期でダンプするために、Cで共有バッファ(1Rスレッド/ 1Wスレッド)をコーディングする必要があります。 私は通常、単純な共有バッファを書き込む場合、古典的循環バッファ実装を使用しますが、この場合、バッファ上の各項目のサイズは可変であり、コンパイル時には知られていません。 私は、可変サイズのアイテムを持つ循環バッファの実装の可能性について疑問を抱いていました。可変サイズのアイテムによる円形バッファの実装

ありがとうございました。

答えて

3

あなたは、それを循環バイナリストリームと考えるかもしれません。つまり、要素を追加する場合は、データを書き込む代わりに、ポップすることで読み込むことになります。

+0

どのようにサイズを読み取ると思いますか?書き込みインデックスに直接書き込むか? – ziu

+2

バッファに 'struct {int size_payload; char * payload} '、最初の' int'を読んだあと、ペイロード(可変サイズのアイテム) –

関連する問題