Removes a semaphore.
Standard C Library (libc.a)
#include <sys/mman.h>
int msem_remove ( Sem)
msemaphore *Sem;
The msem_remove subroutine removes a binary semaphore. Any subsequent use of the msemaphore structure before it is again initialized by calling the msem_init subroutine will have undefined results.
The msem_remove subroutine also causes any process waiting in the msem_lock subroutine on the removed semaphore to return with an error.
If the msemaphore structure contains any value not resulting from a call to the msem_init subroutine, followed by a (possibly empty) sequence of calls to the msem_lock and msem_unlock subroutines, the result is undefined. The address of an msemaphore structure is significant. If the msemaphore structure contains any value copied from an msemaphore structure at a different address, the result is undefined.
Sem | Points to an msemaphore structure that specifies the semaphore to be removed. |
When successful, the msem_remove subroutine returns a value of 0. Otherwise, it returns a -1 and sets the errno global variable to indicate the error.
If the msem_remove subroutine is unsuccessful, the errno global variable is set to the following value:
EINVAL | Indicates the Sem parameter points to an msemaphore structure that specifies a semaphore that has been removed. |
The msem_init (msem_init Subroutine) subroutine, msem_lock (msem_lock Subroutine) subroutine, msem_unlock (msem_unlock Subroutine) subroutine.
List of Memory Mapping Services and Understanding Memory Mapping in AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs.