linuxC多进程通信_systemV消息队列---msgsnd/msgrcv

本文介绍了Linux C语言中使用System V消息队列进行进程间通信的方法,包括msgsnd函数用于发送消息,msgrcv函数用于接收消息。详细阐述了函数的功能、所需的头文件、参数含义以及可能的返回值,帮助开发者理解如何在多进程环境中实现消息传递。
摘要由CSDN通过智能技术生成

功能

msgrcv()可以从消息队列中读取消息,msgsnd()将一个新的消息写入队列。

头文件

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>

函数原型

int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);
ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg);

参数含义

msqid:消息队列的识别码
msgp:指向消息缓冲区的指针,此位置用来暂时存储发送和接收的消息,是一个用户可定义的通用结构,形态如下:

		struct msgbuf {
			long mtype; /* 消息类型,必须 > 0 */
			char mtext[1]; /* 消息文本 */
		};

msgsz:消息的大小
msgtyp:消息类型

msgtyp等于0 则返回队列的最早的一个消息。
msgtyp大于0,则返回其类型为msgtyp的第一个消息。
msgtyp小于0,则返回其类型小于或等于mtype参数的绝对值的最小的一个消息

msgflg:这个参数依然是控制函数行为的标志,取值可以是:0,表示忽略;IPC_NOWAIT,如果消息队列为空&#x

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值