| NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | CONFORMING TO | BUGS | SEE ALSO | COLOPHON | The Linux Programming Interface |
MEMMEM(3) Linux Programmer's Manual MEMMEM(3)
memmem - locate a substring
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <string.h>
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 length haystacklen.
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.
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.
strstr(3)
This page is part of release 3.32 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/.
GNU 2008-12-05 MEMMEM(3)
HTML rendering created 2010-12-03 by Michael Kerrisk, author of The Linux Programming Interface