Я работаю с вопросами разрешения при попытке создать posix mq с вызовом mq_open(). Я включил изменение, как упоминалось здесь mq_open Permission denied Я смотрел на другую соответствующую должность, как это https://groups.google.com/forum/#!topic/comp.unix.programmer/hnTZf6aPpbE, но это также указывает на то же самое.mq_open err no 13 Отказано в доступе
Кроме того, при попытке скомпилировать я столкнулся с ошибкой, когда вызовы mq не были идентифицированы и в сети он показывался для компиляции, добавив -lrt в gcc, post, который смог скомпилировать, упомянув об этом, поскольку я не полностью осведомлен о логическом обосновании из него и не понял его, прочитав пост :)
НКУ server_mq.c -lrt -o сервер
номер ошибки 13
Ах, что-то пошло не так с MQD! Отказано в
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <mqueue.h>
#include <errno.h>
#include <string.h>
#include "client_server.h"
#define PATH "/tmp/servermq"
int main(void)
{
mqd_t mqd;
mode_t omask;
omask = umask(0);
int flags = O_RDWR | O_CREAT | O_EXCL;
struct mq_attr attr, *attrp;
attr.mq_maxmsg = 5;
attr.mq_msgsize = 1024;
attrp = &attr;
mqd = mq_open(PATH, flags, S_IRUSR | S_IWUSR | S_IWGRP, attrp);
if (mqd == (mqd_t)-1)
{
printf("error number is %d \n ",errno);
printf(" Oh dear, something went wrong with mqd ! %s\n", strerror(errno));
}
umask(omask);
mq_close(mqd);
mq_unlink(PATH);
return 0;
}
поблагодарить у поблагодарить у ... провел 3 часа отладки и смотрел онлайн, а не читал человека: (... очень ценю помощь !!! – oneday
Вы более чем рады –