sem_getvalue()

Updated: May 06, 2022

Get the value of a named or unnamed semaphore

Synopsis:

#include <semaphore.h>

int sem_getvalue( sem_t * sem,
                  int  * value );

Arguments:

sem
A pointer to the sem_t object for the semaphore whose value you want to get.
value
A pointer to a location where the function can store the semaphore's value. A positive value indicates the number of semaphore wait operations (e.g., sem_wait()) that will return without blocking. A zero or negative value indicates that any subsequent semaphore wait operations will block. For the unnamed (sem_init()) semaphore implementation, a negative value represents the number of threads currently blocked waiting on the semaphore.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The sem_getvalue() function takes a snapshot of the value of the semaphore, sem, and stores it in value. This value can change at any time, and is guaranteed valid only at some point in the sem_getvalue() call.

This function is provided for debugging semaphore code.

Returns:

0
Success.
-1
An error occurred (errno is set).

Errors:

EINVAL
Invalid semaphore descriptor sem.

Classification:

POSIX 1003.1

Safety:  
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes