C ++中的信号量

时间:2014-09-29 01:12:52

标签: c++ semaphore

我遇到了信号量方面的一些基本问题。

#include <iostream>
using namespace std;
#include <semaphore.h>
int main() {
  sem_t sem;
  sem_init(&sem, 1, 1);
  sem_wait(&sem);
  sem_wait(&sem);
  printf("Return value: %d\n", sem_wait(&sem));
  return 0;
}

我希望这段代码永远等待(由于第二个sem_wait)。 相反,它打印出“返回值:-1”,然后退出。 我正在使用Mac(OSX 10.8.5)上的g ++版本4.2.1进行编译。

1 个答案:

答案 0 :(得分:1)

OS / X不支持未命名的POSIX信号量。使用sem_open()而不是sem_init()。