#include <fcntl.h>
#include <sys/stat.h>
#include <mqueue.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
int main(){
/*
mqd_t mq_open (const char *__name, int __oflag, mode_t mode, struct mq_attr)
消息队列的名称 读写权限 create的权限 属性信息(NULL为默认创建)
命名规则:必须以/ 开头;以\0结束;不能有文件夹
返回:消息队列描述符
如果是读取数据方:
mqd_t mq_open (const char *__name, int __oflag )
struct mq_attr
{
__syscall_slong_t mq_flags;
__syscall_slong_t mq_maxmsg; 队列可以容纳的消息的最大数量
__syscall_slong_t mq_msgsize; 单条消息的最大允许大小
__syscall_slong_t mq_curmsgs;
__syscall_slong_t __pad[4];
};
*/
/*
mq_timedsend();将msg_ptr指向的消息追加到消息队列描述符的尾部,会进行等待
如果在mq_open的时候指定了O_NONBLOCK标记,超时则会报错
mq_timedsend(mqd_t mqdes, const char* msg_ptr, size_t msg_len,
消息队列描述符 指向消息队列的指针 消息长度
unsigned int msg_prio,const struct timespec *abs_timeout);
优先级
*/
/*
mq_timedreceive();从消息队列中取走最早入队且权限最高的消息
参数和send类似
*/
/*
mq_unlink();清除掉对应的消息队列
*/
return 0;
}
进程间通讯--消息队列常用函数介绍
最新推荐文章于 2024-09-11 14:03:06 发布