#include "shm_queue_wrapper.h" typedef struct msg_t { int key; char buf[100]; } msg_t; void client() { int key = -1; size_t qsize = 16; void * remote_queue = shmqueue_attach( 1); void * local_queue = shmqueue_create( &key, qsize); // message_t item; msg_t msg; msg.key = key; void * rec_msg; int rec_msg_size; //入队 while(true) { printf("=====>say some thing:\n"); scanf("%s", msg.buf); shmqueue_push(remote_queue, (void *)&msg, sizeof(msg)); //printf("send: %s\n", msg.buf); shmqueue_pop(local_queue, &rec_msg, &rec_msg_size); printf("=====>peer : %s\n", ((msg_t*)rec_msg)->buf); free(rec_msg); } //销毁队列 shmqueue_drop(local_queue); shmqueue_drop(remote_queue); } int main () { shm_mm_wrapper_init(512); client(); //整个进程退出时需要执行这个方法,该方法首先会检查是否还有其他进程在使用该共享内存,如果还有其他进程在使用就只是detach,如果没有其他进程在使用则销毁整块内存。 shm_mm_wrapper_destroy(); return 0; }