msem_init - Initialize a semaphore in a mapped file or
shared memory region
msemaphore *sem ,
int initial_value );
Standard C Library (libc)
Points to an msemaphore structure in which the state of
the semaphore is stored. Determines whether the semaphore
is locked or unlocked at allocation.
The msem_init() function allocates a new binary semaphore
and initializes the state of the new semaphore.
If the initial_value parameter is MSEM_LOCKED, the new
semaphore is initialized in the locked state. If the initial_value
parameter is MSEM_UNLOCKED, the new semaphore
is initialized in the unlocked state.
The msemaphore structure is located within a mapped file
or shared memory region created by a successful call to
the mmap() function and having both read and write access.
If a semaphore is created in a mapped file region, any
reference by a process which has mapped the same file,
using a (struct msemaphore *) pointer which resolves to
the same file offset, is taken as a reference to the same
semaphore. If a semaphore is created in an anonymous
shared memory region, any reference by a process which
shares the same region, using a (struct msemaphore *)
pointer which resolves to the same offset from the start
of the region, is taken as a reference to the same
Any previous semaphore state stored in the msemaphore
structure is ignored and overwritten.
Upon successful completion, the msem_init() function
returns a pointer to the initialized msemaphore structure.
On error, the msem_init() function returns null and sets
errno to indicate the error.
If the msem_init() function fails, errno may be set to one
of the following values: The initial_value parameter is
not valid. A new semaphore could not be created.
Functions: mmap(2), msem_lock(3), msem_remove(3),
[ Back ]