sem_init(3C) sem_init(3C)
sem_init - initialize a posix unnamed semaphore
#include <semaphore.h>
int sem_init(sem_t *sem<b>, int pshared<b>, unsigned int value<b>);
sem_init initializes the unnamed semaphore located at address sem. The
address sem may reside anywhere in the calling processes address space,
but if the semaphore is intended to be shared across process boundaries,
sem must reside in shared memory.
The pshared argument is used to specify whether the semaphore is intended
to be shared across process boundaries or only used locally by threads of
execution within a common process. If pshared is set to zero, then the
semaphore is not intended for sharing across process boundaries.
Conversely, a non-zero pshared value indicates any process having read
and write access to address sem, may perform semaphore operations on sem.
Unnamed semaphores have been optimized for local thread usage, delivering
increased performance within posix thread applications [see
pthread_create(3P)].
The initial value of the semaphore is specified by value, which may be
any non-negative number less than {SEM_VALUE_MAX} [see sysconf(3C)].
POSIX semaphores are compatible across all MIPS ABIs: o32, n32 and 64.
Once a semaphore is initialized, processes may execute the following
semaphore operations: sem_post, sem_wait, sem_trywait, sem_getvalue,
sem_destroy.
sem_init will fail if one or more of the following are true:
[EINVAL] The value parameter was set to a number greater than
{SEM_VALUE_MAX}.
[ENOSPC] The resources required to initialize the semaphore have been
depleted.
[EPERM] The calling process lacks the permissions required to
initialize the semaphore.
sem_destroy(3C), sem_getvalue(3C), sem_post(3C), sem_wait(3C),
sem_trywait(3C), sem_open(3C), sem_close(3C), sem_unlink(3C),
shm_open(3C), sysconf(3C), mmap(3C)
Page 1
sem_init(3C) sem_init(3C)
DIAGNOSTICS
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 2222 [ Back ]
|