/************msg_send.c*****/
#include <sys/ipc.h>
#include <sys/msg.h>
#include <sys/types.h>
#include <errno.h>
#include <string.h>
struct message
{
long type;
char data[128];
};
int main(int argc,char *argv[])
{
int msg_id;
struct message msg_info;
msg_info.type=10;
strcpy(msg_info.data,"ipc sample..");
msg_id=msgget((key_t)3333,IPC_CREAT|0666);
if(msg_id==-1)
{
perror("msgget:");
return -1;
}
if(msgsnd(msg_id,&msg_info,128,0)==-1)
perror("msgsnd:");
msg_info.type=20;
strcpy(msg_info.data,"ffffffffffff");
msgsnd(msg_id,&msg_info,128,0);
return 0;
}
/*********msg_recv.c*****************/
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <string.h>
struct message
{
long type;
char data[128];
};
int main(int argc,char *argv[])
{
int msg_id;
struct message msg_info;
msg_id=msgget((key_t)3333,IPC_CREAT|0666);
if(msgrcv(msg_id,&msg_info,128,0,0)==-1)
perror("msgrcv:");
else
{
printf("message info %s\n",msg_info.data);
}
msgrcv(msg_id,&msg_info,128,0,0);
printf("message info %s\n",msg_info.data);
msgctl(msg_id,IPC_RMID,0);
return 0;
}