У меня есть следующий код:
// DIE is macro i defined for catching errors
semc = sem_open(sem_name, O_CREAT, 0644, 1);
DIE(semc == SEM_FAILED, "sem_open");
unsigned int val;
rc = sem_getvalue(semc, &val);
DIE(rc == -1, "sem_getvalue");
printf("sem is %d\n" , val);
Хотя я инициализировал семафор с 1, напечатанное значение равно 0 ...
Как это можно объяснить?