#include <myhead.h>
typedef struct{
long type;
char name[20];
char sex;
int age;
}MSG;
int main(int argc, const char *argv[])
{
key_t key = ftok("/",'a');
if(key==-1)
{
perror("");
return -1;
}
int msgqid = msgget(key,IPC_CREAT|0664);
if(msgqid == -1)
{
perror("");
return -1;
}
MSG msg1 = {
.type = 10,
.name = "zhangsan",
.sex = 'M',
.age = 20
};
msgsnd(msgqid,&msg1,sizeof(MSG)-sizeof(long),0);
MSG msg2 = {
.type = 10,
.name = "lisi",
.sex = 'F',
.age = 18
};
msgsnd(msgqid,&msg2,sizeof(MSG)-sizeof(long),0);
MSG msg3 = {
.type = 10,
.name = "wangwu",
.sex = 'M',
.age = 22
};
msgsnd(msgqid,&msg3,sizeof(MSG)-sizeof(long),0);
msgctl(msgqid,IPC_RMID,NULL);
return 0;
}
#include <myhead.h>
typedef struct{
long type;
char name[20];
char sex;
int age;
}MSG;
int main(int argc, const char *argv[])
{
MSG msg;
key_t key = ftok("/",'a');
if(key==-1)
{
perror("");
return -1;
}
int msgqid = msgget(key,IPC_CREAT|0664);
if(msgqid == -1)
{
perror("");
return -1;
}
while(1){
msgrcv(msgqid,&msg,sizeof(MSG)-sizeof(long),10,0);
printf("name = %s\nsex = %c\nage = %d\n",msg.name,msg.sex,msg.age);
}
msgctl(msgqid,IPC_RMID,NULL);
return 0;
}