Это зависит от компилятора, а не от операционной системы / реализации семафора.В этом случае ответ Барта охватывает стандарт C.
Однако, согласно стандарту Unix , вы даже не должны полагаться на sem_t
, равное 0, или даже sem_t *
быть NULL;использование sem_init
для унитарной переменной должно быть безопасным.Единственное специальное значение, указанное для семафоров, это sem_t *
значение SEM_FAILED
, а его значение зависит от реализации.