嵌入式linux

2019-07-12 16:17发布

#include #include #include struct msg_buf { int mtype; char data[255]; }; int main() { key_t key; int msgid; int ret; struct msg_buf msgbuf; key=ftok("/tmp/3",'a');//首先尝试去获得key,如果文件不存在,也会返回键值(无效的) printf("key = [%x] ",key); msgid=msgget(key,IPC_CREAT|0666); /*通过文件对应*///如果文件不存在,则会创建文件,同时返回msgid printf("msgid = [%d] ",msgid); if(msgid==-1) { printf("create error "); return -1; } msgbuf.mtype = getpid(); strcpy(msgbuf.data,"test haha"); ret=msgsnd(msgid,&msgbuf,sizeof(msgbuf.data),IPC_NOWAIT);//长度是数据部分的长度 if(ret==-1) { printf("send message err "); return -1; } memset(&msgbuf,0,sizeof(msgbuf));//清空msgbuf的内容 ret=msgrcv(msgid,&msgbuf,sizeof(msgbuf.data),getpid(),IPC_NOWAIT); if(ret==-1) { printf("recv message err "); return -1; } printf("recv msg =[%s] ",msgbuf.data); }