NAME
sem_init —
initialize an unnamed
semaphore
LIBRARY
POSIX Real-time Library (librt, -lrt)
SYNOPSIS
#include <semaphore.h>
int
sem_init(
sem_t
*sem,
int pshared,
unsigned int value);
DESCRIPTION
The
sem_init() function initializes the unnamed semaphore
pointed to by
sem to have the value
value. A non-zero value for
pshared specifies a shared semaphore that can be used by
multiple processes.
Following a successful call to
sem_init(),
sem can be used as an argument in subsequent calls to
sem_wait(),
sem_timedwait(),
sem_trywait(),
sem_post(), and
sem_destroy().
sem is no longer valid
after a successful call to
sem_destroy.
RETURN VALUES
The
sem_init() function returns the value 0 if
successful; otherwise the value -1 is returned and the global variable
errno is set to indicate the error.
ERRORS
sem_init() will fail if:
-
-
- [
EINVAL
]
- value exceeds SEM_VALUE_MAX.
-
-
- [
ENOSPC
]
- Memory allocation error.
-
-
- [
EPERM
]
- Unable to initialize a shared semaphore.
SEE ALSO
sem_destroy(3),
sem_post(3),
sem_timedwait(3),
sem_trywait(3),
sem_wait(3)
STANDARDS
sem_init() conforms to
ISO/IEC 9945-1:1996
(“POSIX.1”).