#include <sys/types.h>
#include "stdio.h"
#include "string.h"
#include <sys/msg.h>
#include <unistd.h>
void main(int argc,char **argv)
{
int gflags,sflags,rflags;
int i = 0;
int j = 0;
int iMsgLength = 100;
key_t key;
int msgid;
int reval;
struct msgsbuf{
int mtype;
char mtext[iMsgLength];
}msg_sbuf;
char* msgpath="/home/wulei/wulei/ipc.c";
memset(&msg_sbuf,0,sizeof(msg_sbuf));
/* 参数判断 */
for (j=0;j < argc;j++)
{
if (1 == j)
{
while(('\0' != (*argv[j]))&&(i < iMsgLength))
{
msg_sbuf.mtext[i++]=*argv[j]++;
}
}
}
printf("\nsend type =%d,msg =%s\n",msg_sbuf.mtype,msg_sbuf.mtext);
key=ftok(msgpath,'a');
printf("key is %x",key);
gflags=IPC_CREAT;
msgid=msgget(key,gflags|00666);
if(msgid==-1)
{
printf("msg create error\n");
return;
}
sflags=IPC_NOWAIT;
msg_sbuf.mtype=10;
reval=msgsnd(msgid,&msg_sbuf,sizeof(msg_sbuf.mtext),sflags);
if(reval==-1)
{
printf("message send error\n");
}
//发送一个消息后,输出消息队列属性
printf("\nsend type =%d,msg =%s\n",msg_sbuf.mtype,msg_sbuf.mtext);
return;
//从消息队列中读出消息后,输出消息队列属性
}
sendmsg
最新推荐文章于 2021-02-07 13:12:38 发布