Локальные сети персональных компьютеров. Работа с сервером Novell NetWare


         

Если семафор уже создан другим


Если семафор уже создан другим процессом, этот параметр игнорируется. В качестве начального значения вы можете использовать единицу.

Параметр SemaphoreHandle - указатель на переменную, в которую будет записан индекс открытого семафора. Этот индекс необходим для выполнения всех операций с семафором.

Параметр OpenCount - счетчик использования семафора. Когда очередной процесс открывает данный семафор, счетчик увеличивает свое значение на единицу.

Функция возвращает 0 при успешном завершении или код ошибки:



























Код ошибки Значение
0xFE Неправильная длина имени семафора
0xFF Неправильное начальное значение семафора


Для того чтобы закрыть семафор, вам необходимо использовать функцию CloseSemaphore():

int CloseSemaphore(long SemaphoreHandle);

В качестве параметра этой функции указывается индекс закрываемого семафора.

Функция возвращает 0 при успешном завершении или код ошибки:



















Код ошибки Значение
0xFF Неправильное значение индекса семафора


С помощью функции ExamineSemaphore() вы можете узнать текущее состояние семафора:

int ExamineSemaphore(long SemaphoreHandle, int *SemaphoreValue, WORD *OpenCount);

Для заданного первым параметра семафора функция возвращает значение семафора (параметр SemaphoreValue) и счетчик использования (параметр OpenCount).

Функция возвращает 0 при успешном завершении или код ошибки:



















Код ошибки Значение
0xFF Неправильное значение индекса семафора


Перед использованием критического ресурса программа должна вызвать функцию WaitOnSemaphore(), уменьшающую значение семафора:

int WaitOnSemaphore(long SemaphoreHandle, WORD Timeout);

Параметр SemaphoreHandle определяет используемый семафор.

С помощью параметра Timeout определяется время, в течение которого функция ожидает доступность ресурса (в 18-х долях секунды).

Функция возвращает 0 при успешном завершении или код ошибки:



























Код ошибки Значение
0xFE Истекло время ожидания, заданное параметром Timeout
0xFF Неправильное значение индекса семафора


Функция SignalSemaphore(), увеличивающая значение семафора, имеет следующий прототип:


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий