Provided by: manpages-pt-dev_20040726-4_all
memmem - locate a substring
void *memmem(const void *haystack, size_t haystacklen,
const void *needle, size_t needlelen);
The memmem() function finds the start of the first occurrence of the
substring needle of length needlelen in the memory area haystack of
The memmem() function returns a pointer to the beginning of the
substring, or NULL if the substring is not found.
This function is a GNU extension.
This 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. Since libc 5.0.9 is still widely used, this is a dangerous
function to use.
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.5) makes it worse,
and returns a pointer to the last byte of ‘haystack’. Hopefully this
will be fixed. For the time being, memmem() should not be used with an