您的位置:首页 > 运维架构 > Linux

linux msg

2014-04-10 21:16 330 查看
#include <sys/types.h>
#include <sys/msg.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
struct msg_buf
{
int mtype;
char data[256];
};

int main()
{
key_t key;
int msgid;
int ret;
struct msg_buf msgbuf;
key=ftok("/tmp/2",'a');//返回文件键值
printf("key=[%x]\n",key);
msgid=msgget(key,IPC_CREAT|0666);//创建打开消息队列

if(msgid==-1)
{
printf("creat error\n");
return -1;
}

msgbuf.mtype=getpid();
strcpy(msgbuf.data,"delta will");

ret=msgsnd(msgid,&msgbuf,sizeof(msgbuf.data),IPC_NOWAIT);//发送消息
if(ret==-1)
{
printf("send message error!\n");
return -1;
}
printf("send msssage success!msgnumber=%d,msgdata=%s\n",sizeof(msgbuf)-sizeof(int),msgbuf.data);

memset(&msgbuf,0,sizeof(msgbuf));
ret=msgrcv(msgid,&msgbuf,sizeof(msgbuf.data),getpid(),IPC_NOWAIT);//接受消息
if(ret==-1)
{
printf("receive message error!\n");
return -1;
}
printf("receive message success!,msgnumber=%d,msgdata=[%s]\n",ret,msgbuf.data);
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: