0

我有一个学校作业,我们应该解决读者-作家问题。正如我之前发现的sem_init 在 osx 机器上不受支持,所以我选择了 sem_open。但是,下面的代码无法按预期工作。

if(sem_open(sem_reader, O_CREAT, 1, 0600) == SEM_FAILED)
    perror("sem_reader"); 

信号量已创建,但是当我尝试使用以下代码取消链接时:

if(sem_unlink(sem_reader) != 0)
    perror("unlink_sem_reader"); 

我得到输出:

unlink_sem_reader: Permission denied

我尝试使用 0700、0660 等权限,但我总是被拒绝权限。它们都包含在函数中,并且没有对它们执行任何操作。我不确定问题出在哪里。我的问题是:

我是否错误地设置了权限或问题出在其他地方?

编辑:在 Xcode / 10.7 中工作

4

1 回答 1

3

我认为您切换了参数模式和sem_open.

于 2012-04-24T20:20:58.413 回答