Provided by: manpages-ja-dev_0.5.0.0.20180315+dfsg-1_all
名前
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 で初めて登場した。
属性
マルチスレッディング (pthreads(7) 参照) 関数 memchr(), memrchr(), rawmemchr() はスレッドセーフである。
準拠
memchr() 関数は SVr4, 4.3BSD, C89, C99, POSIX.1-2001 に準拠する。 memrchr() 関数は GNU 拡張であり、glibc 2.1.91 から使用可能である。 rawmemchr() 関数は GNU 拡張であり、glibc 2.1 から使用可能である。
関連項目
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 プロジェクトのリリース 3.79 の一部 である。プロジェクト の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。 2015-01-10 MEMCHR(3)