Content-type: text/html Man page of msem_lock

msem_lock

Section: C Library Functions (3)
Index Return to Main Contents
 

NAME

msem_lock - Locks a semaphore  

LIBRARY

Standard C Library (libc.a)  

SYNOPSIS

#include <sys/mman.h>

int msem_lock (        msemaphore *sem,
       int condition );
 

PARAMETERS

Points to an msemaphore structure which specifies the semaphore to be locked. Determines whether the msem_lock() function waits for a currently locked semaphore to unlock.  

DESCRIPTION

The msem_lock() function attempts to lock a binary semaphore.

If the semaphore is not currently locked, it is locked and the msem_lock() function returns successfully.

If the semaphore is currently locked, and the condition parameter is MSEM_IF_NOWAIT, then the msem_lock() function returns with an error. If the semaphore is currently locked, and the condition parameter is 0 (zero), then msem_lock() will not return until either the calling process is able to successfully lock the semaphore, or an error condition occurs.

All calls to msem_lock() and msem_unlock() by multiple processes sharing a common msemaphore structure behave as if the calls were serialized.

If the msemaphore structure contains any value not resulting from a call to msem_init() followed by a (possibly empty) sequence of calls to msem_lock() and msem_unlock(), the results are undefined. The address of an msemaphore structure may be significant. If the msemaphore structure contains any value copied from an msemaphore structure at a different address, the result is undefined.  

NOTES

Trial use  

RETURN VALUES

On successful completion, the msem_lock() function returns 0 (zero). On error, the msem_lock() function returns -1 and sets errno to indicate the error.  

ERRORS

If the msem_lock() function fails, errno may be set to one of the following values: MSEM_IF_NOWAIT was specified and the semaphore was already locked. The sem parameter points to an msemaphore structure which specifies a semaphore which has been removed, or the condition parameter is invalid. The msem_lock() function was interrupted by a signal which was caught.  

RELATED INFORMATION

Functions: msem_init(3), msem_remove(3), msem_unlock(3) delim off


 

Index

NAME
LIBRARY
SYNOPSIS
PARAMETERS
DESCRIPTION
NOTES
RETURN VALUES
ERRORS
RELATED INFORMATION

This document was created by man2html, using the manual pages.
Time: 02:42:07 GMT, October 02, 2010