#include int main()
{
key_t key;
pid_t pid;
int msgkey;
struct msgbuf{
int mtype;
pid_t from;
int count;
char mtext[50];
}rmsg;//消息的格式应该是一样的
pid=getpid();
key=ftok("/home/yandongsheng/",10);
while(1)
{
bzero(&rmsg,sizeof(rmsg));
if(msgrcv(msgkey,&rmsg,sizeof(rmsg.mtext),0,MSG_NOERROR)<0)
{
perror("msgrcv error");
}
printf("rmsg.from=%d\nmy pid is:",rmsg.from,pid);
printf("rmsg.mtype=%d\nrmsg.count=%d\nrmsg.mtext=%s\n",rmsg.mtype,rmsg.count,rmsg.mtext);
sleep(2);
}
if((msgctl(msgkey,IPC_RMID,NULL))<0){
perror("msgctl");
exit(1);
}
return 0;
}
先运行mesg_que_send.c 后运行mesg_que_recv.c 仅做演示