msgsnd()怎么用
时间: 2023-04-12 17:01:34 浏览: 118
msgsnd() 是一个用于向消息队列发送消息的系统调用函数,其函数原型为:
int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);
其中,msqid 是消息队列的标识符,msgp 是指向消息缓冲区的指针,msgsz 是消息的长度,msgflg 是消息发送的标志位。
具体使用方法可以参考以下示例代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#define MSG_SIZE 1024
typedef struct {
long mtype;
char mtext[MSG_SIZE];
} Msg;
int main() {
int msqid;
key_t key;
Msg msg;
// 创建消息队列
key = ftok(".", 'a');
msqid = msgget(key, IPC_CREAT | 0666);
if (msqid == -1) {
perror("msgget");
exit(EXIT_FAILURE);
}
// 发送消息
msg.mtype = 1;
strcpy(msg.mtext, "Hello, world!");
if (msgsnd(msqid, &msg, strlen(msg.mtext) + 1, 0) == -1) {
perror("msgsnd");
exit(EXIT_FAILURE);
}
return 0;
}
以上代码演示了如何创建一个消息队列,并向其发送一条消息。具体使用方法可以根据实际需求进行调整。
阅读全文