我正在尝试创建一个队列,但出现权限被拒绝错误。我之前遇到过这个错误,但后来我添加了用于捕获密钥创建错误的代码并且它正在工作。从那以后我唯一改变的是我将队列创建代码放在一个单独的函数中。这是我的代码的样子:
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 创建:权限被拒绝”。有任何想法吗?