MEMCHR

Section: Linux Programmer's Manual (3)
Updated: 2019-03-06
Index JM Home Page
 

名前

memchr, memrchr, rawmemchr - 文字を探すためにメモリーをスキャンする  

書式

#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  

説明

memchr() 関数は、ポインター s が指し示すメモリー領域の先頭の n バイトから最初に登場する文字 c を探す。 c と s が指し示すメモリー領域の各バイトは両方とも unsigned char と解釈される。

memrchr() 関数は memchr() 関数に似ているが、 先頭から順方向に探すのではなく、 ポインター s が指し示す n バイトのメモリーブロックの 末尾から逆向きに探す。

rawmemchr() 関数は memchr() と同様だが、 c が s が指す場所 から始まるメモリー領域のどこかにあることを前提にして (つまり、プログラマ はそのことを知っている)、最適化した方法で c の検索を実行する (すなわ ち、検索範囲の上限を示す引数も使用されない)。c が見つからなかった 場合、その結果はどうなるか分からない。次に示す呼び出しは、文字列終端の ヌルバイトの位置を特定する高速な手段である。

char *p = rawmemchr(s, '\0');  

返り値

memchr() 関数と memrchr() 関数は一致する文字へのポインターを返し、 もし文字が指定メモリー領域に現れない場合は NULL を返す。

rawmemchr() 関数はマッチするバイトが見つかった場合はマッチしたバイトへのポインターを返す。 マッチするバイトが見つからなかった場合、結果は不定である。  

バージョン

rawmemchr() は glibc バージョン 2.1 で初めて登場した。

memrchr() は glibc バージョン 2.2 で初めて登場した。  

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
memchr(), memrchr(), rawmemchr() Thread safety MT-Safe
 

準拠

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

memrchr() 関数は GNU 拡張であり、glibc 2.1.91 から使用可能である。

rawmemchr() 関数は GNU 拡張であり、glibc 2.1 から使用可能である。  

関連項目

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

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

メモリー   バイト   ポインター   領域   rawmemchr   登場   マッチ   memchr   memrchr   size   拡張   スキャン   検査   マクロ   要件   macros   最初   両方   解釈   方向   ブロック   末尾   逆向き   場所   前提

Linux マニュアル 一覧

関連するコマンド・関数

memchr.3   memrchr.3   memcmp.3   memccpy.3   memset.3   memmove.3
 

Index

名前
書式
説明
返り値
バージョン
属性
準拠
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:27 GMT, October 11, 2026