sem_getvalue(3)

sem_getvalue3

Get the value of a semaphore

Usage

#include <semaphore.h>

int

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

Library

Standard C Library (libc, -lc)

Overview

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

The sem_getvalue() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

Errors

The sem_getvalue() function will fail if:

[EINVAL]

The sem argument points to an invalid semaphore.

Releases

70 releases since FreeBSD 4.0-RELEASE; the text changed 39 times.

  1. 4.0
  2. 4.1–4.2
  3. 4.3
  4. 4.4
  5. 4.5–4.11
  6. 5.0
  7. 5.1–5.2.1
  8. 5.3–6.3
  9. 6.4
  10. 7.0
  11. 7.1
  12. 7.2
  13. 7.3
  14. 7.4
  15. 8.0
  16. 8.1
  17. 8.2
  18. 8.3
  19. 8.4
  20. 9.0
  21. 9.1
  22. 9.2
  23. 9.3
  24. 10.0
  25. 10.1
  26. 10.2
  27. 10.3
  28. 10.4
  29. 11.0
  30. 11.1
  31. 11.2
  32. 11.3
  33. 11.4
  34. 12.0
  35. 12.1
  36. 12.2
  37. 12.3
  38. 12.4
  39. 13.0–13.2
  40. 13.3–16.0

Standards

The sem_getvalue() function 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.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.