flsl(3)

flsl3

Find first or last bit set in a bit string

Part of ffs(3).

Usage

#include <strings.h>

int

ffs(int value);

int

ffsl(long value);

int

ffsll(long long value);

int

fls(int value);

int

flsl(long value);

int

flsll(long long value);

Library

Standard C Library (libc, -lc)

Overview

The ffs(), ffsl() and ffsll() functions find the first (least significant) bit set in value and return the index of that bit.

The fls(), flsl() and flsll() functions find the last (most significant) bit set in value and return the index of that bit.

Bits are numbered starting at 1, the least significant bit. A return value of zero from any of these functions means that the argument was zero.

Releases

52 releases since FreeBSD 5.3-RELEASE; the text changed 36 times.

  1. 5.3–6.1
  2. 6.2–6.3
  3. 6.4
  4. 7.0
  5. 7.1
  6. 7.2
  7. 7.3
  8. 7.4
  9. 8.0
  10. 8.1
  11. 8.2
  12. 8.3
  13. 8.4
  14. 9.0
  15. 9.1
  16. 9.2
  17. 9.3
  18. 10.0
  19. 10.1
  20. 10.2
  21. 10.3
  22. 10.4
  23. 11.0
  24. 11.1
  25. 11.2
  26. 11.3
  27. 11.4
  28. 12.0
  29. 12.1
  30. 12.2
  31. 12.3
  32. 12.4
  33. 13.0–13.2
  34. 13.3–14.3
  35. 14.4–14.5
  36. 15.0
  37. 15.1–16.0

Standards

The ffs() function conforms to IEEE Std 1003.1-2008 (“POSIX.1”). The ffsl() and ffsll() functions conform to IEEE Std 1003.1-2024 (“POSIX.1”).

History

The ffs() function appeared in 4.3BSD. Its prototype existed previously in ⟨string.h⟩ before it was moved to ⟨strings.h⟩ for IEEE Std 1003.1-2001 (“POSIX.1”) compliance.

The ffsl(), fls() and flsl() functions appeared in FreeBSD 5.3. The ffsll() and flsll() functions appeared in FreeBSD 7.1.

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