Доброго времени суток. Разбираюсь с семафорами, в связи с чем возник такой вопрос - функция sem_post должен увеличивать значение семафора на единицу, однако это перестает работать, когда я пробую работать с несколькими процессами. Например:
switch(proc)
    {
    	case -1:
    		fprintf(stderr, "Все плохо\n" );
    		break;
    	case 0:
    		fprintf(stderr, "Это потомок\n" );
    		
		    sem_init(&sem, 0, 1);
		    sem_post(&sem);
		    sem_post(&sem);
		    sem_post(&sem);
    		break;
    	default:
    		waitpid(proc,0,0);
    		fprintf(stderr, "Это родитель\n" );
    		sem_getvalue(&sem, &value);
    		printf("%d\n",value);
    }
В программе без fork все нормально работает, т.е. если я сделал sem_post 3 раза, то получил бы значение 4 и т.п. Подскажите пожалуйста, куда копать

