从IBM站点复制并粘贴代码,但我得到了不同的结果

时间:2014-07-14 00:42:01

标签: c posix semaphore

我正在玩posix信号量,试图更好地理解它们。我从http://www-01.ibm.com/support/knowledgecenter/ssw_i5_54/apis/ipcsemge.htm?lang=en复制了此代码。

输出应该是

  

信号量的初始值是10信号量的值   在等待9之后

相反,我得到

  

信号量的初始值为0信号量的值   在等待0之后

代码有问题吗?我使用的是xcode版本3.2.6

这是代码

  #include <stdio.h>
    #include <semaphore.h>


  main() {
  sem_t my_semaphore;
  int value;

  sem_init(&my_semaphore, 0, 10);
  sem_getvalue(&my_semaphore, &value);
  printf("The initial value of the semaphore is %d\n", value);
  sem_wait(&my_semaphore);
  sem_getvalue(&my_semaphore, &value);
  printf("The value of the semaphore after the wait is %d\n", value);

}

0 个答案:

没有答案