Mat*_*son 0 c++ macos semaphore
#include <semaphore.h>
sem_t* x;
int main ()
{
x = sem_open("x", O_CREAT, 0, 0);;
sem_wait(x); sem_wait(x); sem_wait(x);
std::cout << "\ndone\n";
}
Run Code Online (Sandbox Code Playgroud)
这段代码甚至不应该通过第一个sem_wait(),但在我的系统上它到达了main(). 我读过的所有内容,例如这里和这里,都说,虽然Mac OS X不支持sem_init(),但它确实支持sem_open()。然而,sem_open()按照上面的使用方法并没有解决问题。我运行的是 OS X 10.5.7。
尝试放在sem_unlink("x");之前sem_open(),我确信这不是您第一次尝试。模式 0 不会让你用它做太多事情,除非你删除它。另外,请检查您的呼叫是否有错误,如果不能解决,它会解决,但至少会修改您的问题。
| 归档时间: |
|
| 查看次数: |
6644 次 |
| 最近记录: |