Функция sem_close

Функция sem_close

Текст функции sem_close приведен в листинге 10.23.

11-15 Мы закрываем оба дескриптора и освобождаем память, выделенную под тип sem_t.

Листинг 10.23. Функция sem_close

//my_pxsem_fifo/sem_close.с

1  #include "unpipc.h"

2  #include "semaphore.h"

3  int

4  mysem_close(mysem_t *sem)

5  {

6   if (sem->sem_magic != SEM_MAGIC) {

7    errno = EINVAL;

8    return(-1);

9   }

10  sem->sem_magic = 0; /* чтобы семафор нельзя было больше использовать */

11  if (close(sem->sem_fd[0]) == –1 || close(sem->sem_fd[1]) == –1) {

12   free(sem);

13   return(-1);

14  }

15  free(sem);

16  return(0);

17 }

Данный текст является ознакомительным фрагментом.