Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all 

名前
memmem - 部分文字列の位置を示す
書式
#define _GNU_SOURCE /* feature_test_macros(7) 参照 */
#include <string.h>
void *memmem(const void *haystack, size_t haystacklen,
const void *needle, size_t needlelen);
説明
memmem() 関数は、 haystacklen の大きさを持つメモリ領域 haystack の中で needlelen の大きさを持つ部分文字
列 needle が 最初に現れる位置を見つける。
返り値
memmem() 関数は、部分文字列の開始を指すポインタを返し、もし部分文字列が 見つからない場合は NULL を返す。
準拠
この関数は GNU による拡張である。
バグ
Linux のライブラリに関していうと、 libc 5.0.9 と それ以前のすべてのバージョンで、この関数は壊れている。
それらのライブラリでは needle と haystack 引数が 入れ替わっており、 needle が最初に出現する部分の最後を
示すポインタが返されていたのである。
新旧両方の libc ライブラリが、 needle が空の場合 (haystack のかわりに) haystack-1 が 返されるというバグを
持っている。 そして、glibc 2.0 ではさらに悪くなっており、 haystack の最後のバイトへのポインタを返す。 こ
れは glibc 2.1 で修正された。
関連項目
strstr(3)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクトの説明とバグ報告
に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
GNU 2008-12-05 MEMMEM(3)