Linux进程间通信:消息队列
作者:yamin.wang 发布时间:[ 2016/10/21 10:47:16 ] 推荐标签:进程 Linux
同一消息队列通信:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ipc.h> //要加这个头文件
struct msgbuf{
long mtype;
char mtext[100];
}; //存放消息类型和消息内容的结构体
int main()
{
key_t key;
int msgid;
struct msgbuf msg1,msg2; //msg1用来发送,msg2用来接收
key=ftok(".", 0xf0); //获得消息队列标识符
if( (msgid = msgget(key, IPC_CREAT|0666)) < 0 ) //创建一个消息队列
{
perror("msgget error");
exit(1);
}
msg1.mtype = 1; //消息类型为1,这个可以区别多个消息
memset(msg1.mtext, 0, 100); //将数组清0
strcpy(msg1.mtext, "hello"); //用strcpy给消息内容赋值
msgsnd(msgid, &msg1, strlen(msg1.mtext)+1, 0); //发送时后加上一个‘