memmem() finds the start of the first occurrence of the byte array referenced by needle of length needlelen in the memory area haystack of length haystacklen.
If needle is found, memmem() returns a pointer to it. If needlelen is 0, memmem returns haystack. If needle is not found in haystack, memmem() returns NULL.
Earlier versions of the C library (prior to glibc 2.1) contained a memmem() with various problems, and application developers should treat this function with care.