我正在处理一些使用pthread和semaphore库的代码。在我的Ubuntu机器上,sem_init
函数工作正常,但是在OS X上,sem_init
函数完全没有效果。这个库有问题吗?还是有其他方法可以实现?以下是我用来测试的代码。
sem_t sem1;
sem_t sem2;
sem_t sem3;
sem_t sem4;
sem_t sem5;
sem_t sem6;
sem_init(&sem1, 1, 1);
sem_init(&sem2, 1, 2);
sem_init(&sem3, 1, 3);
sem_init(&sem4, 1, 4);
sem_init(&sem5, 1, 5);
sem_init(&sem6, 1, 6);
这些值看起来像是随机数,并且在 sem_init
调用后不会改变。
sem_init
的返回值。 - bfontainesem_init()
、sem_destroy()
和sem_getvalue()
至少被标记为“已弃用”,因此会生成编译器警告。 - Jonathan Leffler