diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 2001-04-16 00:08:48 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 2001-04-16 00:08:48 +0000 |
commit | 54f9e5f935526f0232a30a53b7520f68320981c3 (patch) | |
tree | 897d3f2e5becbe5b32a7d5e272bd1a7c5a3d069f /lib/libc | |
parent | 420542eac6b2a2ea081757507d99469d00de1411 (diff) |
Man page for hsearch/hcreate/hdestroy from NetBSD
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/db/man/Makefile.inc | 5 | ||||
-rw-r--r-- | lib/libc/db/man/hcreate.3 | 193 |
2 files changed, 196 insertions, 2 deletions
diff --git a/lib/libc/db/man/Makefile.inc b/lib/libc/db/man/Makefile.inc index 1e74ea44bc6..7e03894fedc 100644 --- a/lib/libc/db/man/Makefile.inc +++ b/lib/libc/db/man/Makefile.inc @@ -1,11 +1,12 @@ -# $OpenBSD: Makefile.inc,v 1.10 1999/11/17 05:22:37 millert Exp $ +# $OpenBSD: Makefile.inc,v 1.11 2001/04/16 00:08:46 millert Exp $ .PATH: ${LIBCSRCDIR}/db/man -MAN+= btree.3 dbm.3 dbopen.3 hash.3 mpool.3 ndbm.3 recno.3 +MAN+= btree.3 dbm.3 dbopen.3 hash.3 hcreate.3 mpool.3 ndbm.3 recno.3 MLINKS+= dbopen.3 db.3 MLINKS+= dbm.3 dbminit.3 dbm.3 dbmclose.3 dbm.3 fetch.3 dbm.3 store.3 MLINKS+= dbm.3 delete.3 dbm.3 firstkey.3 dbm.3 nextkey.3 +MLINKS+= hcreate.3 hdestroy.3 hcreate.3 hsearch.3 MLINKS+= mpool.3 mpool_open.3 mpool.3 mpool_filter.3 mpool.3 mpool_new.3 MLINKS+= mpool.3 mpool_delete.3 mpool.3 mpool_get.3 mpool.3 mpool_put.3 MLINKS+= mpool.3 mpool_sync.3 mpool.3 mpool_close.3 diff --git a/lib/libc/db/man/hcreate.3 b/lib/libc/db/man/hcreate.3 new file mode 100644 index 00000000000..6a17ad4ec33 --- /dev/null +++ b/lib/libc/db/man/hcreate.3 @@ -0,0 +1,193 @@ +.\" $OpenBSD: hcreate.3,v 1.1 2001/04/16 00:08:47 millert Exp $ +.\" $NetBSD: hcreate.3,v 1.2.4.1 2001/03/13 21:19:18 he Exp $ +.\" +.\" Copyright (c) 1999 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" This code is derived from software contributed to The NetBSD Foundation +.\" by Klaus Klein. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the NetBSD +.\" Foundation, Inc. and its contributors. +.\" 4. Neither the name of The NetBSD Foundation nor the names of its +.\" contributors may be used to endorse or promote products derived +.\" from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd February 13, 2001 +.Dt HCREATE 3 +.Os +.Sh NAME +.Nm hcreate , +.Nm hdestroy , +.Nm hsearch +.Nd manage hash search table +.Sh SYNOPSIS +.Fd #include <search.h> +.Ft int +.Fn hcreate "size_t nel" +.Ft void +.Fn hdestroy "void" +.Ft ENTRY * +.Fn hsearch "ENTRY item" "ACTION action" +.Sh DESCRIPTION +The +.Fn hcreate , +.Fn hdestroy +and +.Fn hsearch +functions manage hash search tables. +.Pp +The +.Fn hcreate +function allocates and initializes the table. +The +.Fa nel +argument specifies an estimate of the maximum number of entries to be held +by the table. Unless further memory allocation fails, supplying an +insufficient +.Fa nel +value will not result in functional harm, although a performance degradation +may occur. +Initialization using the +.Fn hcreate +function is mandatory prior to any access operations using +.Fn hsearch . +.Pp +The +.Fn hdestroy +function destroys a table previously created using +.Fn hcreate . +After a call to +.Fn hdestroy , +the data can no longer be accessed. +.Pp +The +.Fn hsearch +function is used to search to the hash table. It returns a pointer into the +hash table indicating the address of an item. The +.Fa item +argument is of type +.Dv ENTRY , +a structural type which contains the following members: +.Bl -tag -compact -offset indent -width voidX*dataXX +.It Fa char *key +comparison key. +.It Fa void *data +pointer to data associated with +.Fa key . +.El +.Pp +The key comparison function used by +.Fn hsearch +is +.Xr strcmp 3 . +.Pp +The +.Fa action +argument is of type +.Dv ACTION , +an enumeration type which defines the following values: +.Bl -tag -compact -offset indent -width ENTERXX +.It Dv ENTER +Insert +.Fa item +into the hash table. +If an existing item with the same key is found, it is not replaced. +Note that the +.Fa key +and +.Fa data +elements of +.Fa item +are used directly by the new table entry. The storage for the +key must not be modified during the lifetime of the hash table. +.It Dv FIND +Search the hash table without inserting +.Fa item . +.El +.Pp +.Sh RETURN VALUES +If successful, the +.Fn hcreate +function returns a non-zero value. Otherwise, a value of 0 is returned and +.Va errno +is set to indicate the error. +.Pp +The +.Fn hdestroy +functions +returns no value. +.Pp +If successful, the +.Fn hsearch +function returns a pointer to hash table entry matching +the provided key. +If the action is +.Dv FIND +and the item was not found, or if the action is +.Dv ENTER +and the insertion failed, +.Dv NULL +is returned and +.Va errno +is set to indicate the error. +If the action is +.Dv ENTER +and an entry already existed in the table matching the given +key, the existing entry is returned and is not replaced. +.Sh ERRORS +The +.Fn hcreate +and +.Fn hsearch +functions will fail if: +.Bl -tag -width Er +.It Bq Er ENOMEM +Insufficient memory is available. +.El +.Sh SEE ALSO +.Xr bsearch 3 , +.Xr lsearch 3 , +.Xr malloc 3 , +.Xr strcmp 3 +.Sh STANDARDS +The +.Fn hcreate , +.Fn hdestroy +and +.Fn hsearch +functions conform to +.St -xpg4.2 . +.Sh BUGS +.Pp +The interface permits the use of only one hash table at a time. +.Sh HISTORY +The +.Fn hcreate , +.Fn hdestroy +and +.Fn hsearch +functions first appeared in +.At V . |