usleep(3)

usleep3

Suspend thread execution for an interval measured in microseconds

Usage

#include <unistd.h>

int

usleep(useconds_t microseconds);

Library

Standard C Library (libc, -lc)

Overview

The usleep() function suspends execution of the calling thread until either microseconds microseconds have elapsed or a signal is delivered to the thread and its action is to invoke a signal-catching function or to terminate the process. System activity may lengthen the sleep by an indeterminate amount.

This function is implemented using nanosleep(2) by pausing for microseconds microseconds or until a signal occurs. Consequently, in this implementation, sleeping has no effect on the state of process timers, and there is no special handling for SIGALRM.

Return values

The usleep() 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 usleep() function will fail if:

[EINTR]

A signal was delivered to the calling thread and its action was to invoke a signal-catching function.

Releases

87 releases since FreeBSD 2.0.5-RELEASE; the text changed 45 times.

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

History

The usleep() function appeared in 4.3BSD.

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