#include <sys/types.h>
#include <sys/msg.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
struct msg_buf
{
int mtype;
char data[255];
};
int main()
{
key_t key;
int msgid;
int ret;
struct msg_buf msgbuf;
key = ftok("123456", 'a');
printf ("key = {%x}\n", key);
// 创建或获取消息队列
msgid = msgget(key, IPC_CREAT |0666);
if (msgid == -1)
{
printf ("create error!\n");
return -1;
}
// 设置消息类型
msgbuf.mtype = 2;
// 填写消息
strcpy(msgbuf.data, "test data");
// 发送消息
ret = msgsnd(msgid, &msgbuf, sizeof(msgbuf.data), IPC_NOWAIT);
if (ret == -1)
{
printf ("send message err\n");
return -1;
}
return 0;
}
#include <sys/msg.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
struct msg_buf
{
int mtype;
char data[255];
};
int main()
{
key_t key;
int msgid;
int ret;
struct msg_buf msgbuf;
key = ftok("123456", 'a');
printf ("key = {%x}\n", key);
// 创建或获取消息队列
msgid = msgget(key, IPC_CREAT |0666);
if (msgid == -1)
{
printf ("create error!\n");
return -1;
}
// 设置消息类型
msgbuf.mtype = 2;
// 填写消息
strcpy(msgbuf.data, "test data");
// 发送消息
ret = msgsnd(msgid, &msgbuf, sizeof(msgbuf.data), IPC_NOWAIT);
if (ret == -1)
{
printf ("send message err\n");
return -1;
}
return 0;
}
本文展示了一个使用 POSIX 消息队列进行进程间通信的 C 语言示例程序。该程序通过创建消息队列、设置消息类型并发送一条测试消息来演示基本的消息队列操作。
3604

被折叠的 条评论
为什么被折叠?



