[英]mq_open: Invalid argument
我正在尝试为mq_notify的手册页中的POSIX消息队列运行示例程序。 我将它作为./mq '/bla'
,它给了我错误mq_open: Invalid argument
。
这是示例程序中提供错误的行:
mqdes = mq_open(argv[1], O_RDONLY);
我试过把它换成
mqdes = mq_open("/bla", O_RDONLY | O_CREAT);
但它仍然无效。
这一定很简单,但我无法弄清楚。 我究竟做错了什么?
顺便说一句,这是RHEL 5.8。
编辑:我错误的第一个错误。 没有O_CREAT,它说“没有这样的文件或目录”。 我想它试图打开一个不存在的消息队列。 使用O_CREAT,我认为无效的参数错误是因为我只有两个参数,你需要四个O_CREAT。
只需mq_open(argv[1], O_RDONLY);
如果消息队列不存在,则应以“ENOENT(无此类文件或目录)”失败。
如果将其更改为使用O_CREAT,则需要将另外两个参数传递给mq_open ()。 (阅读关于O_CREAT的段落).eg
mq_open(argv[1], O_RDONLY | O_CREAT, 0666, NULL);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.