sem_wait(3C)							  sem_wait(3C)
      sem_wait, sem_trywait - acquire a posix named or unnamed semaphore
      #include <semaphore.h>
     int sem_wait(sem_t	*sem<b>);
     int sem_trywait(sem_t *sem<b>);
     sem_wait atomically decrements the	value of the semaphore located at
     address sem.  If the semaphore's value is less than zero after the
     decrement,	the calling process blocks on the semaphore.  Otherwise, the
     calling process continues without blocking.
     A process blocked on a semaphore remains blocked until either another
     process posts the semaphore via sem_post, or the sem_wait operation is
     interrupted by a signal.
     sem_trywait atomically decrements the semaphore only if the resulting
     value is greater than or equal to zero.  This way,	the sem_trywait
     function will never cause the calling process to block on the semaphore.
     The address sem may reside	anywhere in the	calling	processes address
     space, but	the process must have read and write access to sem.
     sem_wait or sem_trywait will fail if one or more of the following are
     true:
     [EAGAIN]	 sem_trywait will generate this	error if the semaphore was not
		 available.
     [EDEADLK]	 A deadlock condition was detected.
     [EINVAL]	 The semaphore located at address sem is not a valid posix
		 named or unnamed semaphore.
     [EINTR]	 The operation was interrupted by a signal.
     sem_init(3C), sem_destroy(3C), sem_getvalue(3C), sem_post(3C),
     sem_wait(3C), sem_trywait(3C), sem_open(3C), sem_close(3C),
     sem_unlink(3C),
     Upon successful completion, a value of 0 is returned to the calling
     process. Otherwise, a value of -1 is returned and errno is	set to
     indicate the error.
									PPPPaaaaggggeeee 1111 [ Back ]
 |