📄 buffer.h
字号:
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <pthread.h>#ifndef _BUFFER_H#define _BUFFER_h#ifdef __cplusplusextern "C" {#endif#ifndef _TYPEDEF_BUFFER#define _TYPEDEF_BUFFERtypedef struct _BUFFER{ void *data; void *end; size_t size; pthread_mutex_t mutex; void *(*calloc)(struct _BUFFER *, size_t); void *(*malloc)(struct _BUFFER *, size_t); void *(*recalloc)(struct _BUFFER *, size_t); void *(*remalloc)(struct _BUFFER *, size_t); int (*push)(struct _BUFFER *, void *, size_t); int (*del)(struct _BUFFER *, size_t); void (*reset)(struct _BUFFER *); void (*clean)(struct _BUFFER **);}BUFFER;#define BUFFER_VIEW(buf) \{ \ if(buf) \ { \ fprintf(stdout, "buf:%08X\n" \ "buf->data:%08X\n" \ "buf->end:%08X\n" \ "buf->size:%ld\n" \ "buf->recalloc():%08X\n" \ "buf->remalloc():%08X\n" \ "buf->push():%08X\n" \ "buf->del():%08X\n" \ "buf->reset():%08X\n" \ "buf->clean():%08X\n", \ buf, buf->data, buf->end, buf->size, \ buf->recalloc, buf->remalloc, \ buf->push, buf->del, \ buf->reset, buf->clean); \ } \}BUFFER *buffer_init();#endif/* calloc memory at end of buffer */void* buf_calloc(BUFFER *, size_t);/* malloc memory at end of buffer */void* buf_malloc(BUFFER *, size_t);/* recalloc memory */void* buf_recalloc(BUFFER *, size_t);/* remalloc memory */void* buf_remalloc(BUFFER *, size_t);/* push data to buffer tail */int buf_push(BUFFER *, void *, size_t);/* delete data from buffer */int buf_del(BUFFER *, size_t);/* reset buffer */void buf_reset(BUFFER *);/* clean and free */void buf_clean(BUFFER **);#ifdef __cplusplus }#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -