Книга: UNIX: взаимодействие процессов

Функция sem_post

Функция sem_post

В листинге 10.25 приведен текст функции sem_post, которая увеличивает значение семафора.

11-12 Мы записываем один байт в FIFO. Если канал был пуст, это приведет к возобновлению выполнения всех процессов, заблокированных в вызове read для этого канала.

Листинг 10.25. Функция sem_post

//my_pxsem_fifo/sem_post.с
1  #include "unpipc.h"
2  #include "semaphore.h"
3  int
4  mysem_post(mysem_t *sem)
5  {
6   char c;
7   if (sem->sem_magic != SEM_MAGIC) {
8    errno = EINVAL;
9    return(-1);
10  }
11  if (write(sem->sem_fd[1], &c, 1) == 1)
12   return(0);
13  return(-1);
14 }

Оглавление книги


Генерация: 0.977. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз