Книга: Программирование для Linux. Профессиональный подход
Листинг 5.3. (sem_init.c) Инициализация двоичного семафора
Листинг 5.3. (sem_init.c) Инициализация двоичного семафора
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
/* Тип union semun необходимо определить самостоятельно. "/
union semun {
int val;
struct semid_ds* buf;
unsigned short int *array;
struct seminfo *__buf;
};
/* Инициализация двоичного семафора значением 1. */
int binary_semaphore_initialize(int semid) {
union semun argument;
unsigned short values(1);
values[0] = 1;
argument.array = values;
return semctl(semid, 0, SETALL, argument);
}
Оглавление статьи/книги
Похожие страницы
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- SEMAPHORE COUNT
- 3.3.4 init.c
- Initialization and association
- SCTP INIT chunk
- SCTP INIT ACK chunk
- Initial loading of extra modules
- 1. APPLICABILITY AND DEFINITIONS
- Листинг 15.11. Код для загрузки файла с Web-сервера
- 3.4.2 RTOS Initialization
- Листинг 3.1. Конфигурационный файл lilo.conf
- 3.2.3. init