msem_remove Subroutine

Purpose

Removes a semaphore.

Library

Standard C Library (libc.a)

Syntax

#include <sys/mman.h>

int msem_remove ( Sem)
msemaphore *Sem;

Description

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.

Parameters

Item Description
Sem Points to an msemaphore structure that specifies the semaphore to be removed.

Return Values

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.

Error Codes

If the msem_remove subroutine is unsuccessful, the errno global variable is set to the following value:

Item Description
EINVAL Indicates the Sem parameter points to an msemaphore structure that specifies a semaphore that has been removed.