C言語用リングバッファソース
初期状態 wposが先 rposが先
+-------------+ +-------------+ +-------------+
| | | | |/////////////|
| | | | |/////////////|
| | W+-------------+ R+-------------+
| | |/////////////| | |
| | |/////////////| | |
| | R+-------------+ W+-------------+
| | | | |/////////////|
RW+-------------+ +-------------+ +-------------+
emp !emp !emp !emp !emp !emp !emp emp
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
5| | 5| | 5| | 5| | 5| c | 5| c | 5| | 5| |
4| | 4| | 4| | 4| | 4| b | 4| b | 4| | 4| |
3| | W3| | W3| | RW3| | R3| a | RW3| a | W3| | RW3| |
2| | 2| C | 2| C | 2| | W2| | 2| f | 2| f | 2| |
1| | 1| B | R1| B | 1| | 1| e | 1| e | R1| e | 1| |
RW0| | R0| A | 0| | 0| | 0| d | 0| d | 0| | 0| |
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
wr(ABC) rd(1) rd(2) wr(abcde) wr(f) rd(4) rd(2)