我正在使用C语言中的POSIX创建一个在多个进程之间共享的二进制信号量(而不是线程,仅限进程)。 如果我使用互斥锁来创建二进制信号量,
typedef struct BIN_SEMA
{
pthread_cond_t cv; /* cond. variable
- used to block threads */
pthread_mutex_t mutex; /* mutex variable
- used to prevents concurrent
access to the variable "flag" */
int flag; /* Semaphore state:
0 = down, 1 = up */
} bin_sema;
我只能在线程中使用它,但我想在进程之间共享。 所以我的问题是, 如何使用POSIX计数信号量创建二元信号量?
mutex
本身已经是一个二进制信号量了。而且,如果你要同步不同的进程,为什么不使用适当的机制来实现:sem_open()
、sem_init()
、sem_wait()
、sem_post()
、sem_unlink()
呢? - EOF