LINUX下嵌入式C消息队列函数API
多任务编程
相关函数的说明:
|
函数名 |
msgget |
|
头文件 |
#include <sys/ipc.h> |
|
函数原型 |
int msgget(key_t key, int msgflg); |
|
函数功能 |
获取一个消息队列。 |
|
参数说明 |
1.key:消息队列对象的关键字(key),函数将它与已有的消息队列对象的关键字进行比较来判断消息队列对象是否已经创建。而函数进行的具体操作是由msgflg来确定。 |
|
函数返回值 |
成功:返回消息队列标识值;失败:-1,并设置errno。 |
|
函数名 |
msgsnd |
|
头文件 |
#include <sys/ipc.h> |
|
函数原型 |
int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); |
|
函数功能 |
将一个新的消息写入队列,为了发送消息,调用进程对消息队列进行写入时必须有写权限。 |
|
参数说明 |
1.msqid:消息队列的描述符。(由msgget()函数得到)。 |
|
函数返回值 |
成功:返回0;失败:返回-1,并且设置errno。 |
|
函数名 |
msgrcv |
|
头文件 |
#include <sys/ipc.h> |
|
函数原型 |
ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtype, int msgflg); |
|
函数功能 |
从消息队列中读取消息,接收消息时必须有读权限。 |
|
参数说明 |
1.msqid:消息队列的标识符。(由msgget()函数得到)。 |
|
函数返回值 |
成功:拷贝到mtext数组的实际字节数;失败:返回-1,并且设置errno。 |
|
函数名 |
msgctl |
|
头文件 |
#include <sys/ipc.h> |
|
函数原型 |
int msgctl ( int msgqid, int cmd, struct msqid_ds *buf ); |
|
函数功能 |
消息队列属性控制。 |
|
参数说明 |
1.msgqid:消息队列对象的标识符。 |
|
函数返回值 |
成功:返回0;失败:返回-1,并且设置errno。 |
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐



所有评论(0)