yel*_*hil 4 c linux posix message-queue
我正在尝试为mq_notify 的手册页中的POSIX消息队列运行示例程序.我正在运行它./mq '/bla',它给了我错误mq_open: Invalid argument.
这是示例程序中提供错误的行:
mqdes = mq_open(argv[1], O_RDONLY);
Run Code Online (Sandbox Code Playgroud)
我试过把它换成
mqdes = mq_open("/bla", O_RDONLY | O_CREAT);
Run Code Online (Sandbox Code Playgroud)
但它仍然无效.
这一定很简单,但我无法弄清楚.我究竟做错了什么?
顺便说一句,这是RHEL 5.8.
编辑:我错误的第一个错误.没有O_CREAT,它说"没有这样的文件或目录".我想它试图打开一个不存在的消息队列.使用O_CREAT,我认为无效的参数错误是因为我只有两个参数,你需要四个O_CREAT.
nos*_*nos 10
只是mq_open(argv[1], O_RDONLY);应失败"ENOENT(没有这样的文件或目录)"如果消息队列不存在.
如果将其更改为使用O_CREAT,则需要将另外两个参数传递给mq_open().(阅读关于O_CREAT的段落).eg
mq_open(argv[1], O_RDONLY | O_CREAT, 0666, NULL);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12481 次 |
| 最近记录: |