int
sem_init(sem_t *sem, int pshared, unsigned int value)
)
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, which this
implementation is not capable of.
Following a successful call to
sem_init(),
sem
can be used as an argument in subsequent calls to
sem_wait,
sem_trywait,
sem_post,
and
sem_destroy.
sem
is no longer valid after a successful call to
sem_destroy.
)
will fail if:
EINVAL]value
exceeds SEM_VALUE_MAX.
ENOSPC]EPERM])
conforms to
ISO/IEC 9945-1:1996 (``POSIX.1'') .
This implementation does not support shared semaphores, and reports this fact
by setting
errno
to
EPERM.
This is perhaps a stretch of the intention of POSIX, but is
compliant, with the caveat that
sem_init()
always reports a permissions error when an attempt to create a shared semaphore
is made.