Cómo inicializar un semáforo binario en C

En elman page parece que incluso si inicializa un semáforo a un valor de uno:

sem_init(&mySem, 0, 1);

Todavía podría incrementarse a un valor mayor que 1 con múltiples llamadas a

sem_post(&mySem);

Pero en estecode ejemplo el comentario parece pensar de manera diferente:

sem_init(&mutex, 0, 1);      /* initialize mutex to 1 - binary semaphore */

Es posible inicializar un semáforo estrictamente binario en C?

Nota: La razón para hacer esto en lugar de usar un mutex en este caso es sem_post y sem_wait pueden ser llamados por diferentes hilos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta