Manual Page Search Parameters

MEMMEM(3) Library Functions Manual MEMMEM(3)

memmemlocate a byte substring in a byte string

Standard C Library (libc, -lc)

#include <string.h>

void *
memmem(const void *big, size_t big_len, const void *little, size_t little_len);

The () function locates the first occurrence of the byte string little in the byte string big.

If little_len is zero big is returned (that is, an empty little is deemed to match at the beginning of big); if little occurs nowhere in big, NULL is returned; otherwise a pointer to the first character of the first occurrence of little is returned.

memchr(3), strchr(3), strstr(3)

memmem() started as a GNU extension but is now available in at least the GNU, musl, bionic, OpenBSD, NetBSD, macOS, and illumos C runtime libraries.

The memmem() function first appeared in FreeBSD 6.0. It was replaced with an optimized O(n) implementation from the musl libc project in FreeBSD 12.0. Pascal Gloor <pascal.gloor@spale.com> provided this man page along with the previous implementation.

This function was broken in Linux libc up to and including version 5.0.9 and in GNU libc prior to version 2.1. Prior to FreeBSD 11.0 memmem returned NULL when little_len equals 0.

June 29, 2023 dev