【问题标题】:mq_open() returning -1 errormq_open() 返回 -1 错误
【发布时间】:2015-08-21 11:47:07
【问题描述】:
int main(int argc, char **argv)
{
    mqd_t mqd;

    mqd = mq_open("/tmp/posix.msg/", O_CREAT | O_EXCL | O_NONBLOCK, 0666, NULL);
    printf("mq id: %d \n", mqd);
    mq_close(mqd);

    return 0;

}

vinay>gcc -o mq mq.c -lrt 维奈>./mq mq id:-1

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 检查errno和/或使用perror打印错误信息
  • 嗨 Diego,我收到以下错误错误:权限被拒绝

标签: posix message-queue


【解决方案1】:

来自mq_overview

每个消息队列由 /somename 形式的名称标识; 即,最多 NAME_MAX(即 255)的以 null 结尾的字符串 由一个初始斜杠组成的字符,后跟一个或多个 字符,都不是斜杠

另外,来自mq_open

EACCES

名称包含多个斜线。

所以,请使用开头只有一个斜杠的名称。

【讨论】:

    猜你喜欢
    • 2015-07-12
    • 2016-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-25
    • 2013-02-14
    • 2015-10-05
    相关资源
    最近更新 更多