Man Linux: Main Page and Category List

NAME

       sem_close - close a named semaphore (REALTIME)

SYNOPSIS

       #include <semaphore.h>

       int sem_close(sem_t *sem);

DESCRIPTION

       The  sem_close()  function  shall  indicate that the calling process is
       finished using the named semaphore indicated by  sem.  The  effects  of
       calling   sem_close()   for   an  unnamed  semaphore  (one  created  by
       sem_init()) are undefined. The sem_close()  function  shall  deallocate
       (that  is,  make available for reuse by a subsequent sem_open() by this
       process) any system resources allocated by the system for use  by  this
       process  for  this  semaphore.  The  effect  of  subsequent  use of the
       semaphore indicated by  sem  by  this  process  is  undefined.  If  the
       semaphore  has not been removed with a successful call to sem_unlink(),
       then sem_close() has no effect on the state of the semaphore.   If  the
       sem_unlink()  function has been successfully invoked for name after the
       most recent call to sem_open() with O_CREAT for  this  semaphore,  then
       when  all  processes  that  have  opened  the  semaphore  close it, the
       semaphore is no longer accessible.

RETURN VALUE

       Upon  successful  completion,  a  value  of  zero  shall  be  returned.
       Otherwise,  a  value  of -1 shall be returned and errno set to indicate
       the error.

ERRORS

       The sem_close() function shall fail if:

       EINVAL The sem argument is not a valid semaphore descriptor.

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       The sem_close() function is part of the Semaphores option and need  not
       be available on all implementations.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       semctl()  , semget() , semop() , sem_init() , sem_open() , sem_unlink()
       , the Base Definitions volume of IEEE Std 1003.1-2001, <semaphore.h>

COPYRIGHT

       Portions of this text are reprinted and reproduced in  electronic  form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       -- Portable Operating System Interface (POSIX),  The  Open  Group  Base
       Specifications  Issue  6,  Copyright  (C) 2001-2003 by the Institute of
       Electrical and Electronics Engineers, Inc and The Open  Group.  In  the
       event of any discrepancy between this version and the original IEEE and
       The Open Group Standard, the original IEEE and The Open Group  Standard
       is  the  referee document. The original Standard can be obtained online
       at http://www.opengroup.org/unix/online.html .