我正在考虑更改一些我想在 linux、unix 和 OSX 上运行的代码。代码中有一些对 sem_init 的调用,但 pshared 值设置为零。我在 Rochkind 关于 unix 编程的书中做了一些阅读,他基本上说不共享的 sem_init 与 pthread_mutex_init 相同,因为它以内存中的二进制方式运行。
问题是 - 我是否可以安全地将这些 sem_init 更改为 pthread_mutex_init,或者使用 sem_open 来获得此代码的更便携版本?
OSX 不支持未命名的信号量,但我猜其他两个支持。我真的不想有一个单独的编译标志#ifdef(__APPLE__)
或其他东西。
谢谢