mq_open()函数的 attr 参数错误问题

原创 2012年05月16日 10:02:39

man mq_open显示:

mqd_t mq_open(const char *name, int oflag);

mqd_t mq_open(const char *name, int oflag, mode_t mode,struct mq_attr *attr);

可见,该函数的用法有两种,2个或者4个参数,然而,第二种用法中指定的参数 struct mq_attr *attr 是错误的,应该为struct mq_attr attr,而不是指针类型。

我使用&attr传地址之后,一直是error 22,invalid argument。

不知道是我的系统的版本问题,还是就是这个是man 的错误。

查阅了好多mq_open函数的说明,发现一般都是说第四个参数是指针类型,只有 HP-UX 参考手册 是变量本身,而不是它的地址。

由该函数的功能我们也可以推断,参数类型是结构体类型,因为不需要原调函数中的 attr的值,传值即可。

函数原型应该为:

mqd_t mq_open(const char *name, int oflag, mode_t mode,struct mq_attr attr);

POSIX消息队列(mq_)

头文件: mqueue.h 库: rt--------librt.so 编译的时候加-lrt 查看POSIX消息队列所有函数: man mq_overview 结构体: struct mq_attr{...
  • lingfeng2019
  • lingfeng2019
  • 2017年05月17日 17:29
  • 305

MQ配置和编程最佳实践

MQ配置和编程最佳实践 第一部分:有关MQ对象配置的最佳实践 对于MQ系统配置,我们要规划MQ通讯网络,确定系统的拓扑结构,确定各种对象的属性和命名规则并创建所需的各种对象等,...
  • haitaofeiyang
  • haitaofeiyang
  • 2015年07月13日 20:07
  • 2774

进程通信学习笔记(Posix消息队列)

在某个进程往一个队列写入消息之前,并不需要另外有个进程在该队列上等待消息的到达,这...
  • wuli2496
  • wuli2496
  • 2014年11月12日 22:32
  • 1093

Linux errno 错误对照表

errno 在 中定义,错误 Exx 的宏定义在 /usr/include/asm-generic 文件夹下面的  errno-base.h 和 errno.h,分别定义了 1-34 、35-132...
  • Gpengtao
  • Gpengtao
  • 2012年05月10日 11:41
  • 116796

消息队列莫名其妙的错误 mq_open失败,Invalid argument

消息队列莫名其妙的错误  mq_open失败,Invalid argument  (2012-04-09 23:08:12) 转载▼ 标签:  学习   i...
  • wuwenhuahua
  • wuwenhuahua
  • 2015年03月12日 18:39
  • 757

消息队列mq的原理及实现方法

消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置、或在继续执行前不需要等待...
  • lzq_csdn_th
  • lzq_csdn_th
  • 2016年07月18日 20:50
  • 29119

关于POSIX消息队列mq_open提示错误信息:Invalid argument的问题

关于POSIX消息队列mq_open提示错误信息:Invalid argument的问题1. 发现问题 在学习《Unix网络编程》卷二:进程间通信的第五章,p63页代码时,当调用mq_open函数时,...
  • men_wen
  • men_wen
  • 2017年03月05日 21:35
  • 1123

Posix mq和SystemV mq区别

1、 Posix mq 内核参数影响 fs.mqueue.msg_max        消息队列中消息个数最大限制 fs.mqueue.msgsize_max 消息队列中每个消息长度最大限制 fs.m...
  • lotus302
  • lotus302
  • 2015年10月16日 17:08
  • 1239

POSIX消息队列mq_open问题

遇到 mq_open: Permission denied 请看: Mounting the message queue file system        On Linux, message...
  • shandianling
  • shandianling
  • 2013年01月24日 16:09
  • 7174

mq_open permission denied问题

在UNIX网络编程:卷2-进程间通信中的一个例子如下:#include #include #include #include #include #include #include "co...
  • huanzai2
  • huanzai2
  • 2014年11月18日 20:34
  • 1780
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mq_open()函数的 attr 参数错误问题
举报原因:
原因补充:

(最多只允许输入30个字)