 b6cbf7203b
			
		
	
	
		b6cbf7203b
		
	
	
	
	
		
			
			This patch imports the unmodified current version of NetBSD libc. The NetBSD includes are in /nbsd_include, while the libc code itself is split between lib/nbsd_libc and common/lib/libc.
		
			
				
	
	
		
			307 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			307 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\"	$NetBSD: dbm_clearerr.3,v 1.5 2010/05/05 06:55:57 jruoho Exp $
 | |
| .\"
 | |
| .\" Copyright (c) 2004 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.
 | |
| .\"
 | |
| .\" 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 May 5, 2010
 | |
| .Dt DBM_CLEARERR 3
 | |
| .Os
 | |
| .Sh NAME
 | |
| .Nm dbm_clearerr ,
 | |
| .Nm dbm_close ,
 | |
| .Nm dbm_delete ,
 | |
| .Nm dbm_dirfno ,
 | |
| .Nm dbm_error ,
 | |
| .Nm dbm_fetch ,
 | |
| .Nm dbm_firstkey ,
 | |
| .Nm dbm_nextkey ,
 | |
| .Nm dbm_open ,
 | |
| .Nm dbm_store ,
 | |
| .Nm ndbm
 | |
| .Nd database functions
 | |
| .Sh LIBRARY
 | |
| .Lb libc
 | |
| .Sh SYNOPSIS
 | |
| .In ndbm.h
 | |
| .Ft int
 | |
| .Fn dbm_clearerr "DBM *db"
 | |
| .Ft void
 | |
| .Fn dbm_close "DBM *db"
 | |
| .Ft int
 | |
| .Fn dbm_delete "DBM *db" "datum key"
 | |
| .Ft int
 | |
| .Fn dbm_dirfno "DBM *db"
 | |
| .Ft int
 | |
| .Fn dbm_error "DBM *db"
 | |
| .Ft datum
 | |
| .Fn dbm_fetch "DBM *db" "datum key"
 | |
| .Ft datum
 | |
| .Fn dbm_firstkey "DBM *db"
 | |
| .Ft datum
 | |
| .Fn dbm_nextkey "DBM *db"
 | |
| .Ft DBM *
 | |
| .Fn dbm_open "const char *file" "int open_flags" "mode_t file_mode"
 | |
| .Ft int
 | |
| .Fn dbm_store "DBM *db" "datum key" "datum content" "int store_mode"
 | |
| .Sh DESCRIPTION
 | |
| The
 | |
| .Nm ndbm
 | |
| facility provides access to hash database files.
 | |
| .Pp
 | |
| Two data types are fundamental to the
 | |
| .Nm ndbm
 | |
| facility.
 | |
| .Fa DBM
 | |
| serves as a handle to a database.
 | |
| It is an opaque type.
 | |
| .Pp
 | |
| The other data type is
 | |
| .Fa datum ,
 | |
| which is a structure type which includes the following members:
 | |
| .Bd -literal -offset indent
 | |
| void *  dptr
 | |
| size_t  dsize
 | |
| .Ed
 | |
| .Pp
 | |
| A
 | |
| .Fa datum
 | |
| is thus given by
 | |
| .Fa dptr
 | |
| pointing at an object of
 | |
| .Fa dsize
 | |
| bytes in length.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_open
 | |
| function opens a database.
 | |
| The
 | |
| .Fa file
 | |
| argument is the pathname which the actual database file pathname
 | |
| is based on.
 | |
| This implementation uses a single file with the suffix
 | |
| .Pa .db
 | |
| appended to
 | |
| .Fa file .
 | |
| The
 | |
| .Fa open_flags
 | |
| argument has the same meaning as the
 | |
| .Fa flags
 | |
| argument to
 | |
| .Xr open 2
 | |
| except that when opening a database for write-only access the file
 | |
| is opened for read/write access, and the
 | |
| .Dv O_APPEND
 | |
| flag must not be specified.
 | |
| The
 | |
| .Fa file_mode
 | |
| argument has the same meaning as the
 | |
| .Fa mode
 | |
| argument to
 | |
| .Xr open 2 .
 | |
| .Pp
 | |
| For the following functions, the
 | |
| .Fa db
 | |
| argument is a handle previously returned by a call to
 | |
| .Fn dbm_open .
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_close
 | |
| function closes a database.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_fetch
 | |
| function retrieves a record from the database.
 | |
| The
 | |
| .Fa key
 | |
| argument is a
 | |
| .Fa datum
 | |
| that identifies the record to be fetched.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_store
 | |
| function stores a record into the database.
 | |
| The
 | |
| .Fa key
 | |
| argument is a
 | |
| .Fa datum
 | |
| that identifies the record to be stored.
 | |
| The
 | |
| .Fa content
 | |
| argument is a
 | |
| .Fa datum
 | |
| that specifies the value of the record to be stored.
 | |
| The
 | |
| .Fa store_mode
 | |
| argument specifies the behavior of
 | |
| .Fn dbm_store
 | |
| if a record matching
 | |
| .Fa key
 | |
| is already present in the database,
 | |
| .Fa db .
 | |
| .Fa store_mode
 | |
| must be one of the following:
 | |
| .Bl -tag -width DBM_REPLACEXX -offset indent
 | |
| .It Dv DBM_INSERT
 | |
| If a record matching
 | |
| .Fa key
 | |
| is already present, it is left unchanged.
 | |
| .It Dv DBM_REPLACE
 | |
| If a record matching
 | |
| .Fa key
 | |
| is already present, its value is replaced by
 | |
| .Fa content .
 | |
| .El
 | |
| .Pp
 | |
| If no record matching
 | |
| .Fa key
 | |
| is present, a new record is inserted regardless of
 | |
| .Fa store_mode .
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_delete
 | |
| function deletes a record from the database.
 | |
| The
 | |
| .Fa key
 | |
| argument is a
 | |
| .Fa datum
 | |
| that identifies the record to be deleted.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_firstkey
 | |
| function returns the first key in the database.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_nextkey
 | |
| function returns the next key in the database.
 | |
| In order to be meaningful, it must be preceded by a call to
 | |
| .Fn dbm_firstkey .
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_error
 | |
| function returns the error indicator of the database.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_clearerr
 | |
| function clears the error indicator of the database.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_dirfno
 | |
| function returns the file descriptor of the underlying database file.
 | |
| .Sh IMPLEMENTATION NOTES
 | |
| The
 | |
| .Nm ndbm
 | |
| facility is implemented on top of the
 | |
| .Xr hash 3
 | |
| access method of the
 | |
| .Xr db 3
 | |
| database facility.
 | |
| .Sh RETURN VALUES
 | |
| The
 | |
| .Fn dbm_open
 | |
| function returns a pointer to a
 | |
| .Fa DBM
 | |
| when successful; otherwise a null pointer is returned.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_close
 | |
| function returns no value.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_fetch
 | |
| function returns a content
 | |
| .Fa datum ;
 | |
| if no record matching
 | |
| .Fa key
 | |
| was found or if an error occured, its
 | |
| .Fa dptr
 | |
| member is a null pointer.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_store
 | |
| function returns 0 when then record was successfully inserted;
 | |
| it returns 1 when called with
 | |
| .Fa store_mode
 | |
| being
 | |
| .Dv DBM_INSERT
 | |
| and a record matching
 | |
| .Fa key
 | |
| is already present;
 | |
| otherwise a negative value is returned.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_delete
 | |
| function returns 0 when the record was successfully deleted;
 | |
| otherwise a negative value is returned.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_firstkey
 | |
| and
 | |
| .Fn dbm_nextkey
 | |
| functions return a key
 | |
| .Fa datum .
 | |
| When the end of the database is reached or if an error occured, its
 | |
| .Fa dptr
 | |
| member is a null pointer.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_error
 | |
| function returns 0 if the error indicator is clear;
 | |
| if the error indicator is set a non-zero value is returned.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_clearerr
 | |
| function always returns 0.
 | |
| .Pp
 | |
| The
 | |
| .Fn dbm_dirfno
 | |
| function returns the file descriptor of the underlying database file.
 | |
| .Sh ERRORS
 | |
| No errors are defined.
 | |
| .Sh SEE ALSO
 | |
| .Xr open 2 ,
 | |
| .Xr db 3 ,
 | |
| .Xr hash 3
 | |
| .Sh STANDARDS
 | |
| The
 | |
| .Fn dbm_clearerr ,
 | |
| .Fn dbm_close ,
 | |
| .Fn dbm_delete ,
 | |
| .Fn dbm_error ,
 | |
| .Fn dbm_fetch ,
 | |
| .Fn dbm_firstkey ,
 | |
| .Fn dbm_nextkey ,
 | |
| .Fn dbm_open ,
 | |
| and
 | |
| .Fn dbm_store
 | |
| functions conform to
 | |
| .St -xpg4.2
 | |
| and
 | |
| .St -susv2 .
 | |
| The
 | |
| .Fn dbm_dirfno
 | |
| function is an extension.
 |