Извиняюсь за чайниковский вопрос, линуксу начал обучаться совсем недавно. Есть некий кусок кода, вызываемые из различных процессов, запущенных одновременно (доступ к устройству) Надо сделать так, чтобы каждый процесс перед выполнением данного куска кода ждал, чтобы его выполнение завершилось в других процессах, дабы не щемиться одновременно в одну дверь. Прочитал в умных манах про семафоры, решил, что это именно то, что мне надо и накорябал такой алгоритм: создаю бинарный семафор следующим образом:
...
while (sem_open(SEMAPHORE_NAME,O_RDWR)!=SEM_FAILED); // ждем пока семафор существует - где то выполняется секция
sem_open(SEMAPHORE_NAME, O_CREAT, 0777, 0); //процесс освободился - создаем свой семафор
... // Выполняемая секция кода
sem_unlink(SEMAPHORE_NAME); //освобождаем процесс - убиваем свой семафор
...