memchr, memrchr, rawmemchr - scan memory for a character
#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)):
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');
For an explanation of the terms used in this section, see attributes(7).
Interface | Attribute | Value |
memchr(), memrchr(), rawmemchr() | Thread safety | MT-Safe |
This page is part of release 4.15 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/.