我正在玩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);
}