MEMCHR(3) Linux Programmer's Manual MEMCHR(3)
memchr, memrchr, rawmemchr - scan memory for a character
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)):
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 chararacter c is
not in the string s, then rawmemchr() may proceeed 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, '\0');
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.
The memchr() function conforms to SVr4, 4.3BSD, C89, C99, POSIX.1-2001.
The memrchr() function is a GNU extension, available since glibc
The rawmemchr() function is a GNU extension, available since glibc 2.1.
index(3), rindex(3), strchr(3), strpbrk(3), strrchr(3), strsep(3), str-
spn(3), strstr(3), wmemchr(3)
This page is part of release 3.05 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.