#ifndef _RING_BUF_H_
#define _RING_BUF_H_
/*环形缓冲区管理器*/
typedef struct
{
unsigned char *buf; /*环形缓冲区 */
unsigned int size; /*环形缓冲区 */
unsigned int front; /*头指针 */
unsigned int rear; /*尾指针 */
}ring_buf_t;
/*-------------------------外部接口声明----------------------------*/
int ring_buf_create(ring_buf_t *r,unsigned char *buf,unsigned int size);
void ring_buf_clr(ring_buf_t *r);
unsigned int ring_buf_len(ring_buf_t *r);
unsigned int ring_buf_put(ring_buf_t *r,unsigned char *buf,unsigned int len);
unsigned int ring_buf_get(ring_buf_t *r,unsigned char *buf,unsigned int len);
#endif
/******************************************************************************
* Copyright (C) 2016, roger
* All rights reserved.
*
* 文件名称: ringbuffer.c
* 摘 要:环形缓冲区
* 参 考: linux/kfifo
* 当前版本: 1.0
* 作 者: roger
* 完成日期: 2016-05-30
*
* 取代版本:
* 原作者 :
* 完成日期:
**********
一个免锁环形缓冲区的实现
最新推荐文章于 2024-08-08 17:30:08 发布
本文深入探讨了如何使用无锁技术实现一个高效的环形缓冲区。通过避免传统的锁机制,这种实现提高了多线程环境下的并发性能。详细介绍了数据结构设计、内存对齐、原子操作的使用等关键点。
摘要由CSDN通过智能技术生成