语法

#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);

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

memrchr(),rawmemchr():_ GNU_SOURCE

版本

rawmemchr()首次出现在2.1版的glibc中。

memrchr()首次出现在2.2版的glibc中。

另外参见

bstring(3),ffs(3),index(3),memmem(3),rindex(3),strchr(3),strpbrk(3),strrchr(3),strsep(3),strspn(3), strstr(3),wmemchr(3)

遵循规范

memchr():POSIX.1-2001,POSIX.1-2008,C89,C99,SVr4、4.3BSD。

memrchr()函数是GNU扩展,自glibc 2.1.91起可用。

rawmemchr()函数是GNU扩展,自glibc 2.1起可用。

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

说明

memchr()函数扫描c的第一个实例的s指向的内存区域的前n个字节。 c和s指向的存储区域的字节均被解释为无符号字符。

memrchr()函数类似于memchr()函数,不同之处在于它从s指向的n个字节的末尾向后搜索,而不是从头开始向前搜索。

rawmemchr()函数类似于memchr():它假定(即,程序员肯定知道)c的实例位于内存区域中的某个位置(从s指向的位置开始),因此对c(即,不使用count参数来限制搜索范围)。如果找不到c的实例,则结果是不可预测的。以下调用是查找字符串的终止空字节的快速方法:

char *p = rawmemchr(s, aq##代码##aq);

返回值

memchr()和memrchr()函数将返回一个指向匹配字节的指针,如果在给定的内存区域中未出现该字符,则返回NULL。

rawmemchr()函数返回一个指向匹配字节的指针(如果找到)。如果找不到匹配的字节,则结果不确定。

名称

memchr,memrchr,rawmemchr-扫描内存中的字符

MEMCHR - Linux手册页

Linux程序员手册 第3部分
更新日期: 2019-03-06

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
memchr(),memrchr(),rawmemchr()Thread safetyMT-Safe
日期:2019-08-20 18:00:53 来源:oir作者:oir