Unix/Linux Go Back    


Linux 2.6 - man page for sem_init (linux section 3posix)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


SEM_INIT(P)			    POSIX Programmer's Manual			      SEM_INIT(P)

NAME
       sem_init - initialize an unnamed semaphore (REALTIME)

SYNOPSIS
       #include <semaphore.h>

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

DESCRIPTION
       The  sem_init()	function  shall  initialize the unnamed semaphore referred to by sem. The
       value of the initialized  semaphore  shall  be  value.  Following  a  successful  call  to
       sem_init(),  the  semaphore  may be used in subsequent calls to sem_wait(), sem_trywait(),
       sem_post(), and sem_destroy().  This semaphore shall remain usable until the semaphore  is
       destroyed.

       If  the	pshared  argument has a non-zero value, then the semaphore is shared between pro-
       cesses; in this case, any process that can access the semaphore sem can use sem	for  per-
       forming sem_wait(), sem_trywait(), sem_post(), and sem_destroy() operations.

       Only  sem  itself  may be used for performing synchronization.  The result of referring to
       copies of sem in calls to sem_wait(),  sem_trywait(),  sem_post(),  and	sem_destroy()  is
       undefined.

       If  the	pshared  argument  is  zero,  then the semaphore is shared between threads of the
       process; any thread in this process can use sem for performing sem_wait(),  sem_trywait(),
       sem_post(),  and  sem_destroy() operations. The use of the semaphore by threads other than
       those created in the same process is undefined.

       Attempting to initialize an already initialized semaphore results in undefined behavior.

RETURN VALUE
       Upon successful completion, the sem_init() function shall initialize the semaphore in sem.
       Otherwise, it shall return -1 and set errno to indicate the error.

ERRORS
       The sem_init() function shall fail if:

       EINVAL The value argument exceeds {SEM_VALUE_MAX}.

       ENOSPC A resource required to initialize the semaphore has been exhausted, or the limit on
	      semaphores ( {SEM_NSEMS_MAX}) has been reached.

       EPERM  The process lacks the appropriate privileges to initialize the semaphore.

       The following sections are informative.

EXAMPLES
       None.

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

RATIONALE
       Although  this  volume of IEEE Std 1003.1-2001 fails to specify a successful return value,
       it is likely that a later version may require the implementation to return a value of zero
       if the call to sem_init() is successful.

FUTURE DIRECTIONS
       None.

SEE ALSO
       sem_destroy() , sem_post() , sem_timedwait() , sem_trywait() , sem_wait() , the Base Defi-
       nitions 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 orig-
       inal Standard can be obtained online at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group			       2003				      SEM_INIT(P)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 01:52 PM.