NAME
memmem - locate a substring
SYNOPSIS
#define _GNU_SOURCE
#include <string.h>
I void *memmem(const void * haystack , size_t haystacklen ,
I const void * needle , size_t needlelen );
DESCRIPTION
The
R 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 VALUE
The
R 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