Почему возникла проблема с получением значения семафора и проверкой его так, чтобы при значении семафора> 0 мы вызывали wait ()?то есть: почему возникла бы проблема для следующего кода?
if (getValue(&sem)>0){ wait(&sem); }
Похоже, что проблема здесь:
&sem>0
Вы не передаете указатель на семафор (& sem) в качестве аргумента, а int (& sem> 0)
попробуйте
getValue(&sem) > 0
?