-.\" Hey Emacs! This file is -*- nroff -*- source.
.\" Copyright 1995 Jim Van Zandt <jrv@vanzandt.mv.com>
.\"
+.\" %%%LICENSE_START(VERBATIM)
.\" 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.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
.\"
.\" Corrected prototype and include, aeb, 990927
-.TH LSEARCH 3 1999-09-27 "GNU" "Linux Programmer's Manual"
+.TH LSEARCH 3 2017-09-15 "GNU" "Linux Programmer's Manual"
.SH NAME
lfind, lsearch \- linear search of an array
.SH SYNOPSIS
.nf
.B #include <search.h>
-.sp
+.PP
.BI "void *lfind(const void *" key ", const void *" base ", size_t *" nmemb ,
.BI " size_t " size ", int(*" compar ")(const void *, const void *));"
-.sp
+.PP
.BI "void *lsearch(const void *" key ", void *" base ", size_t *" nmemb ,
.BI " size_t " size ", int(*" compar ")(const void *, const void *));"
.fi
and
.BR lsearch ()
perform a linear search for
-\fIkey\fP in the array \fIbase\fP which has \fI*nmemb\fP elements of
-\fIsize\fP bytes each.
+.I key
+in the array
+.IR base
+which has
+.I *nmemb
+elements of
+.I size
+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
+.I compar
+is expected to have two arguments which point to the
+.I key
+object and to an array member, in that order, and which
+returns zero if the
+.I key
+object matches the array member, and
nonzero otherwise.
.PP
If
.BR lsearch ()
-does not find a matching element, then the \fIkey\fP
-object is inserted at the end of the table, and \fI*nmemb\fP is
+does not find a matching element, then the
+.I key
+object is inserted at the end of the table, and
+.I *nmemb
+is
incremented.
In particular, one should know that a matching element
exists, or that more room is available.
returns a pointer to
a matching member of the array, or to the newly added member if no
match is found.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbw18 lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR lfind (),
+.BR lsearch ()
+T} Thread safety MT-Safe
+.TE
+.sp 1
.SH CONFORMING TO
-SVr4, 4.3BSD, POSIX.1-2001.
+POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
Present in libc since libc-4.6.27.
.SH BUGS
The naming is unfortunate.