我有一个学校作业,我们应该解决readers-writers问题。正如我之前发现的那样sem_init is not supported on osx machine所以我选择了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
答案 0 :(得分:3)
我认为您切换了sem_open
的参数模式和值。