#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct msgbuf {
long mtype; /* message type, must be > 0 */
char mtext[30]; /* message data */
};
int main()
{
//int msgget(key_t key, int msgflg);
// int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);
// ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,
// int msgflg);
struct msgbuf sendBuf = {888,"jianglongjie henshuai"};
key_t key;
key = ftok(".",'z');
printf("key = %x\n ",key);
int msgId = msgget(key,IPC_CREAT|0777);
if(msgId == -1){
printf("get que fail\n");
}
msgsnd(msgId,&sendBuf,strlen(sendBuf.mtext),0);
printf("send to que\n");
return 0;
}
~
~
向信息队列中发送信息
lude<stdio.h>
#include<stdlib.h>
#include<string.h>
struct msgbuf {
long mtype; /* message type, must be > 0 */
char mtext[30]; /* message data */
};
int main()
{
//int msgget(key_t key, int msgflg);
// int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);
// ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,
// int msgflg);
// key_t ftok(const char *pathname, int proj_id);
struct msgbuf readBuf;
key_t key;
key = ftok(".",'z');
printf("key = %x\n ",key);
int msgId = msgget(key,IPC_CREAT|0777);
if(msgId == -1){
printf("get que fail\n");
}
msgrcv(msgId,&readBuf,sizeof(readBuf.mtext),888,0);
printf("read from que, text is %s \n",readBuf.mtext);
return 0;
}
~
~
~
读取消息队列中的消息