memchr, memrchr, rawmemchr - scan memory for a character
Standard C library (
libc,
-lc)
#include <string.h>
void *memchr(const void s[.n], int c, size_t n);
void *memrchr(const void s[.n], int c, size_t n);
[[deprecated]] void *rawmemchr(const void s[.n], int c);
memrchr(),
rawmemchr():
_GNU_SOURCE
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(), but 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.
If an instance of
c is not found, the behavior is undefined. Use either
strlen(3) or instead.
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.
rawmemchr() first appeared in glibc 2.1.
memrchr() first appeared in glibc 2.2.
For an explanation of the terms used in this section, see
attributes(7).
Interface |
Attribute |
Value |
memchr (), memrchr (), rawmemchr () |
Thread safety |
MT-Safe |
memchr(): POSIX.1-2001, POSIX.1-2008, 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.
bstring(3),
ffs(3),
memmem(3),
strchr(3),
strpbrk(3),
strrchr(3),
strsep(3),
strspn(3),
strstr(3),
wmemchr(3)