Как я могу увеличить семафор POSIX sem_t более чем на 1? - PullRequest
0 голосов
/ 25 февраля 2011

Могу ли я, чтобы объект sem_t (семафор) принял значение больше 1? Поскольку sem_post увеличивается только на 1. Есть ли sem_set?

1 Ответ

1 голос
/ 25 февраля 2011

Да, sem_t может принимать значение больше 1. Вы можете использовать sem_init, чтобы инициализировать ваш семафор в произвольное значение. Цитирование эта ссылка :

Чтобы инициализировать семафор, используйте sem_init ():

  int sem_init(sem_t *sem, int pshared, unsigned int value); 
  • sem указывает на объект семафора инициализировать
  • pshared - это флаг указывая, является ли Семафор должен быть доступен для процессы fork (). LinuxThreads делает в настоящее время не поддерживаются семафоры
  • значение является начальным значением установить семафор на

Пример Применение:

  sem_init(&sem_name, 0, 10);

Я не знаю ни одной функции, которая может увеличивать sem_t на произвольное значение.

...