gpt4 book ai didi

c - mq_open : Invalid argument

转载 作者:IT王子 更新时间:2023-10-29 00:55:31 27 4
gpt4 key购买 nike

我正在尝试为在 man page 中找到的 POSIX 消息队列运行示例程序对于 mq_notify。我以 ./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,则需要将 2 个附加参数传递给 mq_open (). (阅读有关 O_CREAT 的段落)。例如

    mq_open(argv[1], O_RDONLY | O_CREAT, 0666, NULL);

关于c - mq_open : Invalid argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9997460/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com