summaryrefslogtreecommitdiffstats
path: root/man3/memmem.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/memmem.3')
-rw-r--r--man3/memmem.363
1 files changed, 63 insertions, 0 deletions
diff --git a/man3/memmem.3 b/man3/memmem.3
new file mode 100644
index 000000000..3cfa2127c
--- /dev/null
+++ b/man3/memmem.3
@@ -0,0 +1,63 @@
+.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" References consulted:
+.\" Linux libc source code
+.\" 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 1998-01-13 "GNU" "Linux Programmer's Manual"
+.SH NAME
+memmem \- locate a substring
+.SH SYNOPSIS
+.nf
+.B #define _GNU_SOURCE
+.br
+.B #include <string.h>
+.sp
+.BI "void *memmem(const void *" haystack ", size_t " haystacklen ,
+.in +\w'void *memmem('u
+.BI "const void *" needle ", size_t " needlelen );
+.in
+.fi
+.SH DESCRIPTION
+The \fBmemmem()\fP 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.
+.SH "RETURN VALUE"
+The \fBmemmem()\fP function returns a pointer to the beginning of the
+substring, or NULL if the substring is not found.
+.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 `needle' and `haystack' arguments were interchanged,
+and a pointer to the end of the first occurrence of \fIneedle\fP
+was returned. Since libc 5.0.9 is still widely used, this is a
+dangerous function to use.
+.br
+Both old and new libc's have the bug that if \fIneedle\fP is empty
+\fIhaystack\fP-1 (instead of \fIhaystack\fP) 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.
+.SH "SEE ALSO"
+.BR strstr (3)