Я пытаюсь создать очередь, но получаю ошибку об отказе в разрешении. Я получил эту ошибку раньше, но затем я добавил код для перехвата ошибок при создании ключа, и он работал. С тех пор я изменил только то, что я поместил свой код создания очереди в отдельную функцию. Вот как выглядит мой код:
key_t key1;
int msqid1;
int main(int arc, char *argv[])
{
getKeys();
queueCreate();
}
void getKeys()
{
if ((key1 = ftok(".", '1')) == -1)
{
perror("key1 creation");
exit(1);
}
}
void queueCreate()
{
if ((msqid1 = msgget(key1, 0666 | IPC_CREAT)) == -1)
{
perror("msqid1 creation");
exit(1);
}
}
Выдается сообщение об ошибке: «msqid1 creation: Permission denied». Есть идеи?