msgsnd()函数详解

msgsnd函数用于向消息队列发送消息,参数包括消息队列ID(msqid),消息指针(msgp),消息大小(msgsz)和标志(msgflg)。消息结构体msgbuf包含类型mtype和正文mtext。IPC_NOWAIT标志表示若消息未发送完则立即返回。示例中发送helloworld后,通过ipcs-q命令可查看到消息队列的used-bytes为12,表明发送成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数原型

int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);

//读取消息,成功返回消息数据的长度,失败返回‐1

参数:

msgid:消息队列的ID

msgp:指向消息的指针,常用结构体msgbuf如下:

struct msgbuf

{

long mtype; //消息类型

char mtext[N]; //消息正文

}

size:发送的消息正文你的字节数

flag:

IPC_NOWAIT 消息没有发送完成函数也会立即返回0:知道发送完成函数才返回

返回值:

成功:0

失败:‐1

示例:

我们输入hello world

再打开一个终端指令

输入ipcs -q查看消息队列信息

可以看到我们的消息队列的used - bytes为12

即代表输入成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值