# RingBufferBytes **Repository Path**: wylkd1991/ringbufferbytes-cpp ## Basic Information - **Project Name**: RingBufferBytes - **Description**: C++实现以字节为单位的环形缓冲区,实现之初用于收发TCP数据; 同样适用于以流为呈现形式的数据收发。如:串口、CAN - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: https://ganrui.flowus.cn - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-11-02 - **Last Updated**: 2022-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RingBufferBytes #### 介绍 已使用mutex对读写指针进行保护,适用于多线程通信 若用于串口等硬件类数据收发,mutex可用中断屏蔽相关代码代替 ```txt /** * *------------------------------------------------------------------------ * eg.1 有1个数据 * 0 1 2 pM=Max-1=m_mask * [*|_|_|_|_|______________|_]Max * R W * * * eg.2 W=R, 空情况 * 0 1 2 pM=Max-1=m_mask * [_|_|_|_|_|______________|_]Max * R * W * * * eg.3 W+1=R, 满情况(为区分空情况,最满状态,需要空余一个单位(字节) * 0 1 2 pM=Max-1=m_mask * [*|*|*****|_|*|*****|*|*]Max * W R * * * eg.3.1 (W+1)%M=R, 满情况(为区分空情况,最满状态,需要空余一个单位(字节)) * 0 1 2 pM=Max-1=m_mask * [*|*|*****|*|*|*****|*|_]Max * R W * * * * eg.4 W>R的情况 * 0 1 pM=Max-1=m_mask * [_|_|_|*|*|*****|*|*|_|_|_|_|_]Max * R W * * eg.5 WW, L=R-W *3) R