Provided by: manpages-dev_5.10-1ubuntu1_all bug

NAME

       memchr, memrchr, rawmemchr - scan memory for a character

SYNOPSIS

       #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 feature_test_macros(7)):

       memrchr(), rawmemchr(): _GNU_SOURCE

DESCRIPTION

       The memchr() function scans the initial n bytes of the memory 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 interpreted 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
       locating a string's terminating null byte:

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

RETURN VALUE

       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.

VERSIONS

       rawmemchr() first appeared in glibc in version 2.1.

       memrchr() first appeared in glibc in version 2.2.

ATTRIBUTES

       For an explanation of the terms used in this section, see attributes(7).
       ┌──────────────────────────────────┬───────────────┬─────────┐
       │ InterfaceAttributeValue   │
       ├──────────────────────────────────┼───────────────┼─────────┤
       │ memchr(), memrchr(), rawmemchr() │ Thread safety │ MT-Safe │
       └──────────────────────────────────┴───────────────┴─────────┘

CONFORMING TO

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

       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.

SEE ALSO

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

COLOPHON

       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
       https://www.kernel.org/doc/man-pages/.

                                                   2019-03-06                                          MEMCHR(3)