.\" 386BSD man pages
.\" Modified Sat Jul 24 18:50:48 1993 by Rik Faith (faith@cs.unc.edu)
.\" Interchanged 'needle' and 'haystack'; added history, aeb, 980113.
-.TH MEMMEM 3 2008-12-05 "GNU" "Linux Programmer's Manual"
+.TH MEMMEM 3 2014-03-17 "GNU" "Linux Programmer's Manual"
.SH NAME
memmem \- locate a substring
.SH SYNOPSIS
The
.BR memmem ()
function finds the start of the first occurrence
-of the substring \fIneedle\fP of length \fIneedlelen\fP in the memory
-area \fIhaystack\fP of length \fIhaystacklen\fP.
+of the substring
+.IR needle
+of length
+.I needlelen
+in the memory
+area
+.I haystack
+of length
+.IR haystacklen .
.SH RETURN VALUE
The
.BR memmem ()
function returns a pointer to the beginning of the
substring, or NULL if the substring is not found.
+.SH ATTRIBUTES
+.SS Multithreading (see pthreads(7))
+The
+.BR memmem ()
+function is thread-safe.
.SH CONFORMING TO
This function is a GNU extension.
.SH BUGS
This function was broken in Linux libraries up to and including libc 5.0.9;
-there the \fIneedle\fP and \fIhaystack\fP arguments were interchanged,
-and a pointer to the end of the first occurrence of \fIneedle\fP
+there the
+.IR needle
+and
+.I haystack
+arguments were interchanged,
+and a pointer to the end of the first occurrence of
+.I needle
was returned.
-Both old and new libc's have the bug that if \fIneedle\fP is empty,
-\fIhaystack\-1\fP (instead of \fIhaystack\fP) is returned.
+Both old and new libc's have the bug that if
+.I needle
+is empty,
+.I haystack\-1
+(instead of
+.IR haystack )
+is returned.
And glibc 2.0 makes it worse, returning a pointer to the
-last byte of \fIhaystack\fP.
+last byte of
+.IR haystack .
This is fixed in glibc 2.1.
.SH SEE ALSO
.BR strstr (3)
+.SH COLOPHON
+This page is part of release 3.65 of the Linux
+.I man-pages
+project.
+A description of the project,
+and information about reporting bugs,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.