#include <sys/msg.h>
#include <sys/ipc.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char **argv)
{
int c,oflag,mqid;
oflag=IPC_CREAT|0666; //创建,且允许所有进程读写
mqid=msgget(2222,oflag);
exit(0);
}
#include <sys/msg.h>
#include <sys/ipc.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//#include <sys/types.h>
#define MSG_W 0200
#define BUFSIZE 512
struct msgbuf
{
long mtype;
char mdata[BUFSIZE];
};
int main(int argc,char **argv)
{
int mqid;
size_t len;
long type;
struct msgbuf *ptr;
mqid=msgget(2222,MSG_W);
//len=atoi(argv[1]);
type=atoi(argv[1]);
ptr=calloc(sizeof(long)+BUFSIZE,sizeof(char));
ptr->mtype=type;
snprintf(ptr->mdata,BUFSIZE,"Hi,Boy~");
len=strlen(ptr->mdata);
msgsnd(mqid,ptr,len,0);
exit(0);
}
#include <sys/msg.h>
#include <sys/ipc.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MSG_R 0400
#define MSGBUFFSIZE (512+sizeof(long))
struct msgbuf
{
long mtype;
char mdata[MSGBUFFSIZE-sizeof(long)];
};
int main(int argc,char **argv)
{
int mqid;
struct msgbuf *buf;
mqid=msgget(2222,MSG_R);
buf=malloc(MSGBUFFSIZE);
int nbytes=msgrcv(mqid,buf,MSGBUFFSIZE,0,0);
printf("recv:%d bytes %s\n",nbytes,buf->mdata);
exit(0);
}
#include <sys/msg.h>
#include <sys/ipc.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc,char **argv)
{
int mqid;
mqid=msgget(2222,0);
msgctl(mqid,IPC_RMID,NULL);
exit(0);
}