# Синхронизиране със семафори

```c
#inlude<semaphore.h>
int sem_init(sem_t *sem, int pshared, unsigned int value);
int sem_wait(sem_t *sem);
int sem_post(sem_t *sem);
int sem_destroy(sem_t *sem);
```

* **sem\_init()** инициализира неименован семафор на адреса, посочен от аргумента **sem**. Аргументът **value** указва началната стойност на семафора.
* **sem\_wait()** декрементира (заключва) семафора, посочен от аргумента **sem**. Ако в момента семафорът има стойност нула, извикването се блокира.
* **sem\_post()** увеличава (отключва) семафора, посочен от аргумента **sem**.
* **sem\_destroy()** унищожава неименован семафор на адреса, посочен от аргумента **sem**.
