MEMCHR(3) Linux Programmer's Manual MEMCHR(3)
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 first n bytes of the memory area pointed to by s for the character c. The first byte to match c (inter-
preted as an unsigned character) stops the operation.
The memrchr() function is like the memchr() function, except that it searches backwards from the end of the n bytes pointed to by s instead
of forwards from the beginning.
The rawmemchr() function is similar to memchr(): it assumes (i.e., the programmer knows for certain) that the character c lies somewhere in
the string s, and so performs an optimized search for the character c (i.e., no checking for the terminating null byte, or use of an argu-
ment, n, to limit the range of the search). If the character c is not in the string s, then rawmemchr() may proceed to search beyond the
end of the string, and the result is unspecified. The folowing call is a fast means of locating a string's terminating null byte:
char *p = rawmemchr(s, '