summaryrefslogtreecommitdiffstats
path: root/man3/lsearch.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/lsearch.3')
-rw-r--r--man3/lsearch.369
1 files changed, 69 insertions, 0 deletions
diff --git a/man3/lsearch.3 b/man3/lsearch.3
new file mode 100644
index 000000000..96b2d8485
--- /dev/null
+++ b/man3/lsearch.3
@@ -0,0 +1,69 @@
+.\" Hey Emacs! This file is -*- nroff -*- source.
+.\" Copyright 1995 Jim Van Zandt <jrv@vanzandt.mv.com>
+.\"
+.\" 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.
+.\"
+.\" Corrected prototype and include, aeb, 990927
+.TH LSEARCH 3 1999-09-27 "GNU" "Linux Programmer's Manual"
+.SH NAME
+lfind, lsearch \- linear search of an array
+.SH SYNOPSIS
+.nf
+.B #include <search.h>
+.sp
+.BI "void *lfind(const void *" key ", const void *" base ", size_t *" nmemb ,
+.RS
+.BI "size_t " size ", int(*" compar ")(const void *, const void *));"
+.RE
+.sp
+.BI "void *lsearch(const void *" key ", void *" base ", size_t *" nmemb ,
+.RS
+.BI "size_t " size ", int(*" compar ")(const void *, const void *));"
+.RE
+.fi
+.SH DESCRIPTION
+\fBlfind()\fP and \fBlsearch()\fP perform a linear search for
+\fIkey\fP in the array \fIbase\fP which has *\fInmemb\fP elements of
+\fIsize\fP bytes each. The comparison function referenced by
+\fIcompar\fP is expected to have two arguments which point to the
+\fIkey\fP object and to an array member, in that order, and which
+returns zero if the \fIkey\fP object matches the array member, and
+non-zero otherwise.
+.PP
+If \fBlsearch()\fP does not find a matching element, then the \fIkey\fP
+object is inserted at the end of the table, and *\fInmemb\fP is
+incremented.
+In particular, one should know that a matching element
+exists, or that more room is available.
+.SH "RETURN VALUE"
+\fBlfind()\fP returns a pointer to a matching member of the array, or
+\fBNULL\fP if no match is found. \fBlsearch()\fP returns a pointer to
+a matching member of the array, or to the newly added member if no
+match is found.
+.SH "CONFORMING TO"
+SVID 1, SVID 3, BSD 4.3, POSIX 1003.1-2003.
+Present in libc since libc-4.6.27.
+.SH BUGS
+The naming is unfortunate.
+.SH "SEE ALSO"
+.BR bsearch (3),
+.BR hsearch (3),
+.BR tsearch (3)