mydata.h
#ifndef _MYDATA_H
#define _MYDATA_H
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Mydata
{
int len;
long type;
char buf[64];
}l
#endif
frst.c
#include “mydata.h”
int main(int argc,int argv[])
{
int mqid=0;
struct Mydata data={6,9,“hello”};
mqid=msgget(9999,IPC_CREAT | 0666);
if(mqid<0)
{
printf(“msgget error\n”);
return 1;
}
msgsnd(mqid,&data.type,data.len,0);//
return 0;
}
second.c
#include “mydata.h”
int main(int argc,char* argv[])
{
int msgid=0;
struct MyData data={0};
mqid=msgget(9999,IPC_CREAT | 0666);
if(mqid<0)
{
printf(“msgget error”);
return 1;
}
msgrcv(mqid,&data.type,6.9.0);
//消息队列标识 消息类型 消息大小
接受的第一个消息 0
data.type=99;
data.len=6;
printf("buf=%s in second\n",data.buf);
msgsnd(mqid,&data.type,data.len,0);
//消息队列标识 消息类型 消息大小 0 时 sgssnd 会阻塞
return 0;
}