January 22, 2003 SEM_GETVALUE 3

### NAME

sem_getvalue - get the value of a semaphore

### LIBRARY

POSIX Real-time Library (librt, -lrt)

### SYNOPSIS

```int` sem_getvalue(```sem_t * restrict sem``, int * restrict sval`)

### DESCRIPTION

The sem_getvalue(``) function sets the variable pointed to by ```sval` to the current value of the semaphore pointed to by ```sem`, as of the time that the call to sem_getvalue(``) is actually run.

### RETURN VALUES

### ERRORS

sem_getvalue(``) will fail if:

[```EINVAL`]
  ```sem` points to an invalid semaphore.

### SEE ALSO

sem_post(3), sem_trywait(3), sem_wait(3)

### STANDARDS

sem_getvalue(``) conforms to ISO/IEC 9945-1:1996 (``POSIX.1'') .

The value of the semaphore is never negative, even if there are threads blocked on the semaphore. POSIX is somewhat ambiguous in its wording with regard to what the value of the semaphore should be if there are blocked waiting threads, but this behavior is conformant, given the wording of the specification.