Search Linux Documents Online
Manual FullText  




新功能提示:您可以点这里试试中文手册
SEM_INIT(P)                                                                                               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 initial-
       ized semaphore shall be value. Following a successful call to sem_init(), the semaphore may be used in  subse-
       quent  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 processes;  in  this  case,
       any  process  that  can  access  the  semaphore  sem  can  use  sem  for performing 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  success-
       ful.

FUTURE DIRECTIONS
       None.

SEE ALSO
       sem_destroy()  ,  sem_post()  ,  sem_timedwait() , sem_trywait() , sem_wait() , 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 Speci-
       fications 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 .



POSIX                                                    2003                                             SEM_INIT(P)
煲汤食谱大全cheap nfl jerseys