Manpages - ffs.3

Table of Contents

NAME

ffs, ffsl, ffsll - find first bit set in a word

SYNOPSIS

  #include <strings.h>

  int ffs(int i);

  #include <string.h>

  int ffsl(long i);
  int ffsll(long long i);

Feature Test Macro Requirements for glibc (see *feature_test_macros*(7)):

*ffs*():

      Since glibc 2.12:
          _XOPEN_SOURCE >= 700
              || ! (_POSIX_C_SOURCE >= 200809L)
              || /* Glibc since 2.19: */ _DEFAULT_SOURCE
              || /* Glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
      Before glibc 2.12:
          none

*ffsl*(), *ffsll*():

      Since glibc 2.27:
          _DEFAULT_SOURCE
      Before glibc 2.27:
          _GNU_SOURCE

DESCRIPTION

The *ffs*() function returns the position of the first (least significant) bit set in the word i. The least significant bit is position 1 and the most significant position is, for example, 32 or 64. The functions *ffsll*() and *ffsl*() do the same but take arguments of possibly different size.

RETURN VALUE

These functions return the position of the first bit set, or 0 if no bits are set in i.

ATTRIBUTES

For an explanation of the terms used in this section, see *attributes*(7).

Interface Attribute Value
*ffs*(), *ffsl*(), *ffsll*() Thread safety MT-Safe

CONFORMING TO

*ffs*(): POSIX.1-2001, POSIX.1-2008, 4.3BSD.

The *ffsl*() and *ffsll*() functions are glibc extensions.

NOTES

BSD systems have a prototype in <string.h>.

SEE ALSO

*memchr*(3)

COLOPHON

This page is part of release 5.13 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

Author: dt

Created: 2022-02-20 Sun 15:39