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.