msem_init(2)msem_init(2)NAMEmsem_init - initialize a semaphore in a mapped file or anonymous memory
region
SYNOPSISDESCRIPTION
allocates a new binary semaphore and initializes the state of the new
semaphore.
sem points to an structure in which the state of the semaphore is to be
stored.
If initial_value is the new semaphore is initialized in the locked
state. If initial_value is the new semaphore is initialized in the
unlocked state.
The structure must be located within a mapped file or anonymous memory
region created by a successful call to and have both read and write
access.
If a semaphore is created in a mapped file region, any reference by a
process that has mapped the same file, using a pointer that resolves to
the same file offset is interpreted as a reference to the same sema‐
phore. If a semaphore is created in an anonymous memory region, any
reference by a process sharing the same region by use of a pointer that
resolves to the same offset from the start of the region is interpreted
as a reference to the same semaphore.
Any previous semaphore state stored in the structure will be ignored
and overwritten.
Implementation Notes
In order to ensure that an structure is entirely contained in a single
memory page, sem must be at an address that is an exact multiple of The
size of the structure is guaranteed to prevent semaphores that cross
page boundaries given the above restriction.
For a memory mapped file region, the system deallocates memory that
corresponds to a range of the file that has been truncated with or If a
semaphore is located in memory so deallocated, the effect is equivalent
to an on the semaphore.
RETURN VALUE
returns the address of the initialized structure; otherwise, it returns
NULL and sets to indicate the error.
ERRORS
fails if any of the following conditions are encountered:
sem points to an structure that is not located in a
mapped region created by and with read and write
access, or initial_value is not valid.
A new semaphore could not be created.
sem is an invalid pointer.
AUTHOR
was developed by HP and OSF.
SEE ALSOmmap(2), msem_lock(2), msem_remove(2), msem_unlock(2), mman(5).
STANDARDS CONFORMANCEmsem_init(2)