From owner-freebsd-doc@FreeBSD.ORG Sat Mar 16 17:40:01 2013 Return-Path: Delivered-To: freebsd-doc@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id B783214C for ; Sat, 16 Mar 2013 17:40:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 9AE16AEB for ; Sat, 16 Mar 2013 17:40:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.6/8.14.6) with ESMTP id r2GHe1t2069436 for ; Sat, 16 Mar 2013 17:40:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.6/8.14.6/Submit) id r2GHe1B9069435; Sat, 16 Mar 2013 17:40:01 GMT (envelope-from gnats) Resent-Date: Sat, 16 Mar 2013 17:40:01 GMT Resent-Message-Id: <201303161740.r2GHe1B9069435@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-doc@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Fernando Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 53276F25 for ; Sat, 16 Mar 2013 17:38:12 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id 41963AC3 for ; Sat, 16 Mar 2013 17:38:12 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.5/8.14.5) with ESMTP id r2GHcBNr032691 for ; Sat, 16 Mar 2013 17:38:11 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.5/8.14.5/Submit) id r2GHcBnn032690; Sat, 16 Mar 2013 17:38:11 GMT (envelope-from nobody) Message-Id: <201303161738.r2GHcBnn032690@red.freebsd.org> Date: Sat, 16 Mar 2013 17:38:11 GMT From: Fernando To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: docs/177025: [PATCH] lsearch.3 manual page example addition X-BeenThere: freebsd-doc@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Documentation project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Mar 2013 17:40:01 -0000 >Number: 177025 >Category: docs >Synopsis: [PATCH] lsearch.3 manual page example addition >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-doc >State: open >Quarter: >Keywords: >Date-Required: >Class: doc-bug >Submitter-Id: current-users >Arrival-Date: Sat Mar 16 17:40:01 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Fernando >Release: 9.0-RELEASE >Organization: OpenSistemas >Environment: FreeBSD beastie 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan 3 07:46:30 UTC 2012 root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 >Description: We lack an example for the lsearch(3)/lfind(3) man pages. We should improve documentation with more examples. >How-To-Repeat: man lsearch >Fix: Apply the attached patch. Since lsearch is referenced by the hsearch(3) and bsearch(3) man pages, and all these functions work pretty much the same way, I think this one should suffice as a reference for all of them Patch attached with submission follows: --- /usr/src/lib/libc/stdlib/lsearch.3 2012-01-03 04:26:05.000000000 +0100 +++ lsearch.3 2013-03-15 20:27:22.000000000 +0100 @@ -81,6 +81,49 @@ Both functions return .Dv NULL if an error occurs. +.Sh EXAMPLES +.Bd -literal + +#include +#include +#include + +static int +element_compare(const void *p1, const void *p2) +{ + int left = *(const int *)p1; + int right = *(const int *)p2; + + return (left - right); +} + +int +main(int argc, char **argv) +{ + const int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + size_t element_size = sizeof(array[0]); + size_t array_size = sizeof(array) / element_size; + int key; + void *element; + + printf("Enter a number: "); + if (scanf("%d", &key) != 1) { + printf("Bad input\n"); + return (EXIT_FAILURE); + } + + element = lfind (&key, array, &array_size, element_size, element_compare); + + if (element != NULL) + printf("Element found: %d\n", *(int *)element); + else + printf("Element not found\n"); + + return (EXIT_SUCCESS); +} + + +.Ed .Sh SEE ALSO .Xr bsearch 3 , .Xr hsearch 3 , >Release-Note: >Audit-Trail: >Unformatted: