#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
memrchr() 関数は memchr() 関数に似ているが、 先頭から順方向に探すのではなく、 ポインター s が指し示す n バイトのメモリーブロックの 末尾から逆向きに探す。
rawmemchr() 関数は memchr() と同様だが、 c が s が指す場所 から始まるメモリー領域のどこかにあることを前提にして (つまり、プログラマ はそのことを知っている)、最適化した方法で c の検索を実行する (すなわ ち、検索範囲の上限を示す引数も使用されない)。c が見つからなかった 場合、その結果はどうなるか分からない。次に示す呼び出しは、文字列終端の ヌルバイトの位置を特定する高速な手段である。
rawmemchr() 関数はマッチするバイトが見つかった場合はマッチしたバイトへのポインターを返す。 マッチするバイトが見つからなかった場合、結果は不定である。
memrchr() は glibc バージョン 2.2 で初めて登場した。
インターフェース | 属性 | 値 |
memchr(), memrchr(), rawmemchr() | Thread safety | MT-Safe |
memrchr() 関数は GNU 拡張であり、glibc 2.1.91 から使用可能である。
rawmemchr() 関数は GNU 拡張であり、glibc 2.1 から使用可能である。
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]