MEMMEM(M) Linux Programmer's Manual MEMMEM(M) NAME memmem - locate a substring SYNOPSIS #define _GNU_SOURCE #include <string.h> void *memmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen); DESCRIPTION The memmem() function finds the start of the first occur- rence of the substring needle of length needlelen in the memory area haystack of length haystacklen. RETURN VALUE The memmem() function returns a pointer to the beginning of the substring, or NULL if the substring is not found. CONFORMING TO This function is a GNU extension. BUGS 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 makes it worse, and returns a pointer to the last byte of `haystack'. This is fixed in glibc 2.1. SEE ALSO strstr(r) GNU 1998-01-13 MEMMEM(M)