通过共享内存和信号量的乒乓机制实现大数据块在不同程序之间的数据传输。
共享数据结构体:
/* share memory type */
typedef struct __SHARE_BUF_NODE__{
int max_buf_size;//the share buffer size
int share_size;//the share block size in the share buffer
void *share_pt;//the share address
}SHARE_BUF_NODE;
发送端:
1)初始化共享模块
shm_init(0);
2)添加共享通道,其中max_buf_size为共享缓冲区的大小。
SHM_FD shm_chn_add(int max_buf_size),
3)推送共享数据
shm_push(SHM_FD mfd, SHARE_BUF_NODE *node)
接收端:
1)初始化共享模块
shm_init(1);
2)绑定共享通道
SHM_FD shm_chn_attach(void);
3)获取数据
int shm_pull(SHM_FD mfd, SHARE_BUF_NODE *node)
4)释放数据句柄
shm_release(int fd);
发送端代码:
点击(此处)折叠或打开
/******************************************************************************
This is Is