Provided by: manpages-dev_4.04-2_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

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

                                                   2015-08-08                                          MEMCHR(3)