sem_init(S)
sem_init --
initialize an unnamed semaphore
Syntax
cc . . . -lsuds
#include <semaphore.h>
int sem_init (sem_t *sem, int pshared, unsigned int value);
Description
The sem_init function is used to initialize the unnamed
semaphore referred to by sem. The value of the initialized
semaphore is value. Following a successful call to
sem_init, the semaphore may be used in subsequent calls to
sem_wait(S),
sem_trywait(S),
sem_post(S),
and
sem_destroy(S).
This semaphore remains usable until it is destroyed.
If the pshared argument is non-zero, then the semaphore is
shared between processes; in this case, any process which 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.
Return values
Upon successful completion, the function initializes the semaphore
in sem. Otherwise, it returns -1 and sets errno
to indicate the error.
Diagnostics
If any of the following conditions occur, the sem_init
function returns -1 and sets errno to the corresponding
value:
[EINVAL]-
The value argument exceeds {SEM_VALUE_MAX}.
[ENOSPC]-
A resource required to initialize the semaphore has been
exhausted. The limit on semaphores, {SEM_NSEMS_MAX}, has
been reached.
[EPERM]-
The process lacks the appropriate privileges to initialize the
semaphore.
See also
semaphore(FP),
sem_destroy(S),
sem_post(S),
sem_trywait(S),
sem_wait(S)
Standards conformance
Text reprinted and/or adapted from IEEE Std 1003.1b-1993,
IEEE Standard for Information Technology, POSIX
Part 1: System Application Program Interface (API)
Amendment 1: Realtime Extensions [C Language], copyright © 1993
by the Institute of Electrical and Electronics Engineers, Inc. The
IEEE takes no responsibility for and will assume no
liability for damages resulting from the reader's misinterpretation
of said information resulting from the placement and context in this
publication. Information is reproduced with the permission of the
IEEE.
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003