*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> sem_init (3)              
Title
Content
Arch
Section
 

sem_init(3)

Contents


NAME    [Toc]    [Back]

       sem_init - Initializes an unnamed semaphore (P1003.1b)

SYNOPSIS    [Toc]    [Back]

       #include <semaphore.h>

       int sem_init(
               sem_t *sem,
               int pshared,
               unsigned int value );

LIBRARY    [Toc]    [Back]

       Realtime Library (librt)

PARAMETERS    [Toc]    [Back]

       Specifies a location to receive the descriptor of the initialized
 semaphore.  Specifies a value indicating  whether
       the semaphore should be sharable between the creating process
 and its descendants (non-zero value) or  not  (zero).
       Specifies  the initial value to be given to the semaphore.

DESCRIPTION    [Toc]    [Back]

       The sem_init() function creates a new  counting  semaphore
       with a specific value. A semaphore is used to limit access
       to a critical resource.  When a process requires access to
       the resource without interference from other processes, it
       attempts to establish a  connection  with  the  associated
       semaphore.   If  the semaphore value is greater than zero,
       the connection is established and the semaphore  value  is
       decremented by one. If the semaphore value is less than or
       equal to  zero,  the  process  attempting  to  access  the
       resource  is  blocked and must wait for another process to
       release the semaphore and increment the semaphore value.

       The sem_init() function establishes a  connection  between
       an  unnamed  semaphore  and  a process; the sem_wait() and
       sem_trywait()  functions  lock  the  semaphore;  and   the
       sem_post()   function   unlocks  the  semaphore.  Use  the
       sem_destroy()  function  to  deallocate  system  resources
       allocated  to  the process for use with the semaphore. You
       can use the sem_getvalue() function to obtain the value of
       a semaphore.

       A  semaphore  created by a call to the sem_init() function
       remains valid until the semaphore is removed by a call  to
       the sem_destroy() function.

RETURN VALUES    [Toc]    [Back]

       On successful completion, the function returns the value 0
       (zero); otherwise, the function returns the value  -1  and
       sets errno to indicate the error.

ERRORS    [Toc]    [Back]

       The  sem_init  function  fails  under the following conditions:
 The  value  argument  exceeds  {SEM_VALUE_MAX}.   A
       resource  required  to  initialize  the semaphore has been
       exhausted. The limit on semaphores  ({SEM_NSEMS_MAX})  has
       been reached.  The process lacks the appropriate privilege
       to initialize the semaphore.



SEE ALSO    [Toc]    [Back]

      
      
       Functions:  sem_destroy(3),  sem_post(3),  sem_trywait(3),
       sem_wait(3)

       Guide to Realtime Programming



                                                      sem_init(3)
[ Back ]
 Similar pages
Name OS Title
sem_destroy Tru64 Destroys an unnamed semaphore (P1003.1b)
sem_init FreeBSD initialize an unnamed semaphore
sem_init OpenBSD initialize an unnamed semaphore
sem_destroy OpenBSD destroy an unnamed semaphore
sem_destroy FreeBSD destroy an unnamed semaphore
sem_getvalue IRIX get the value of a posix named or unnamed semaphore
sem_init IRIX initialize a posix unnamed semaphore
sem_destroy HP-UX destroy an unnamed POSIX semaphore
sem_destroy IRIX deinitialize a posix unnamed semaphore
sem_init HP-UX initialize an unnamed POSIX semaphore
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service