MEMCHR(3)                 (2019-03-06)                  MEMCHR(3)

          memchr, memrchr, rawmemchr - scan memory for a character

          #include <string.h>

          void *memchr(const void *s, int c, size_t n

          void *memrchr(const void *s, int c, size_t n

          void *rawmemchr(const void *s, int c);

     Feature Test Macro Requirements for glibc (see

          memrchr(), rawmemchr(): _GNU_SOURCE

          The memchr() function scans the initial n bytes of the mem-
          ory area pointed to by s for the first instance of c. Both c
          and the bytes of the memory area pointed to by s are inter-
          preted as unsigned char.

          The memrchr() function is like the memchr() function, except
          that it searches backward from the end of the n bytes
          pointed to by s instead of forward from the beginning.

          The rawmemchr() function is similar to memchr(): it assumes
          (i.e., the programmer knows for certain) that an instance of
          c lies somewhere in the memory area starting at the location
          pointed to by s, and so performs an optimized search for c
          (i.e., no use of a count argument to limit the range of the
          search).  If an instance of c is not found, the results are
          unpredictable.  The following call is a fast means of locat-
          ing a string's terminating null byte:

              char *p = rawmemchr(s, aq\0aq);

          The memchr() and memrchr() functions return a pointer to the
          matching byte or NULL if the character does not occur in the
          given memory area.

          The rawmemchr() function returns a pointer to the matching
          byte, if one is found.  If no matching byte is found, the
          result is unspecified.

          rawmemchr() first appeared in glibc in version 2.1.

     Page 1                       Plan 9             (printed 5/20/22)

     MEMCHR(3)                 (2019-03-06)                  MEMCHR(3)

          memrchr() first appeared in glibc in version 2.2.

          For an explanation of the terms used in this section, see
          attributes(7).  allbox; lbw32 lb lb l l l.
          Interface Attribute Value T{ memchr(), memrchr(),
          rawmemchr() T}   Thread safety  MT-Safe

          memchr(): POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4,

          The memrchr() function is a GNU extension, available since
          glibc 2.1.91.

          The rawmemchr() function is a GNU extension, available since
          glibc 2.1.

          bstring(3), ffs(3), index(3), memmem(3), rindex(3),
          strchr(3), strpbrk(3), strrchr(3), strsep(3), strspn(3),
          strstr(3), wmemchr(3)

          This page is part of release 5.10 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

     Page 2                       Plan 9             (printed 5/20/22)