MEMMEMSection: Linux Programmer's Manual (3)
Index Return to Main Contents
NAMEmemmem - locate a substring
#define _GNU_SOURCE #include <string.h> void *memmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen);
DESCRIPTIONThe memmem() function finds the start of the first occurrence of the substring needle of length needlelen in the memory area haystack of length haystacklen.
RETURN VALUEThe memmem() function returns a pointer to the beginning of the substring, or NULL if the substring is not found.
CONFORMING TOThis function is a GNU extension.
BUGSThis function was broken in Linux libraries up to and including libc 5.0.9; there the needle and haystack arguments were interchanged, and a pointer to the end of the first occurrence of needle was returned.
Both old and new libc's have the bug that if needle is empty, haystack-1 (instead of haystack) is returned. And glibc 2.0 makes it worse, returning a pointer to the last byte of haystack. This is fixed in glibc 2.1.
SEE ALSOstrstr(3), feature_test_macros(7)
COLOPHONThis page is part of release 3.21 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.