recno - record number database access method


   #include <sys/types.h>
   #include <db.h>


   Note  well:  This  page documents interfaces provided in glibc up until
   version 2.1.   Since  version  2.2,  glibc  no  longer  provides  these
   interfaces.   Probably,  you  are  looking for the APIs provided by the
   libdb library instead.

   The routine dbopen(3) is the library interface to database files.   One
   of  the  supported  file  formats  is record number files.  The general
   description of the database access methods is in dbopen(3), this manual
   page describes only the recno-specific information.

   The  record  number  data  structure is either variable or fixed-length
   records stored in a flat-file format, accessed by  the  logical  record
   number.   The  existence of record number five implies the existence of
   records one through four, and the deletion of record number one  causes
   record  number  five to be renumbered to record number four, as well as
   the cursor, if positioned after record number one, to  shift  down  one

   The  recno  access-method-specific data structure provided to dbopen(3)
   is defined in the <db.h> include file as follows:

       typedef struct {
           unsigned long flags;
           unsigned int  cachesize;
           unsigned int  psize;
           int           lorder;
           size_t        reclen;
           unsigned char bval;
           char         *bfname;
       } RECNOINFO;

   The elements of this structure are defined as follows:

   flags  The flag value is  specified  by  ORing  any  of  the  following

                 The  records  are  fixed-length, not byte delimited.  The
                 structure element reclen  specifies  the  length  of  the
                 record, and the structure element bval is used as the pad
                 character.  Any records, inserted into the database, that
                 are less than reclen bytes long are automatically padded.

                 In  the  interface specified by dbopen(3), the sequential
                 record retrieval fills in both the caller's key and  data
                 structures.  If the R_NOKEY flag is specified, the cursor
                 routines are not required to fill in the  key  structure.
                 This  permits applications to retrieve records at the end
                 of files without reading all of the intervening records.

                 This flag requires that a snapshot of the file  be  taken
                 when  dbopen(3)  is  called,  instead  of  permitting any
                 unmodified records to be read from the original file.

          A suggested maximum size, in bytes, of the memory  cache.   This
          value is only advisory, and the access method will allocate more
          memory rather than  fail.   If  cachesize  is   0  (no  size  is
          specified), a default cache is used.

   psize  The  recno  access  method  stores  the  in-memory copies of its
          records in a btree.  This value is the size (in  bytes)  of  the
          pages  used for nodes in that tree.  If psize is 0 (no page size
          is specified), a page size is chosen  based  on  the  underlying
          filesystem I/O block size.  See btree(3) for more information.

   lorder The  byte  order  for  integers in the stored database metadata.
          The number  should  represent  the  order  as  an  integer;  for
          example,  big endian order would be the number 4,321.  If lorder
          is 0 (no order is specified), the current host order is used.

   reclen The length of a fixed-length record.

   bval   The delimiting byte to be used to mark the end of a  record  for
          variable-length  records, and the pad character for fixed-length
          records.  If no value is specified, newlines ("\n") are used  to
          mark the end of variable-length records and fixed-length records
          are padded with spaces.

   bfname The recno access method  stores  the  in-memory  copies  of  its
          records  in  a  btree.   If bfname is non-NULL, it specifies the
          name of the btree file, as if specified as the  filename  for  a
          dbopen(3) of a btree file.

   The  data  part of the key/data pair used by the recno access method is
   the same as other access methods.  The  key  is  different.   The  data
   field  of  the  key  should  be  a pointer to a memory location of type
   recno_t, as defined in the <db.h> include file.  This type is  normally
   the  largest  unsigned  integral  type available to the implementation.
   The size field of the key should be the size of that type.

   Because there can be no metadata associated with the  underlying  recno
   access  method  files,  any  changes  made to the default values (e.g.,
   fixed record  length  or  byte  separator  value)  must  be  explicitly
   specified each time the file is opened.

   In  the  interface  specified  by dbopen(3), using the put interface to
   create a new record will cause the creation of multiple, empty  records
   if  the  record number is more than one greater than the largest record
   currently in the database.


   The recno access method routines may fail and set errno for any of  the
   errors specified for the library routine dbopen(3) or the following:

   EINVAL An  attempt  was made to add a record to a fixed-length database
          that was too large to fit.


   Only big and little endian byte order is supported.


   btree(3), dbopen(3), hash(3), mpool(3)

   Document  Processing  in  a   Relational   Database   System,   Michael
   Stonebraker,  Heidi  Stettner,  Joseph  Kalash, Antonin Guttman, Nadene
   Lynn, Memorandum No. UCB/ERL M82/32, May 1982.


   This page is part of release 4.09 of the Linux  man-pages  project.   A
   description  of  the project, information about reporting bugs, and the
   latest    version    of    this    page,    can     be     found     at

More Linux Commands

mren(1) - rename an existing MSDOS file - Linux manual page
The mren command is used to rename or move an existing MS-DOS file or subdirectory. Its syntax is: mren [-voOsSrRA] sourcefile targetfile Mren renames an existi

genisoimage-isodebug(1) print genisoimage debug info from IS
genisoimage-isodebug.1 - Isodebug reads the debug info written by genisoimage(8) from within a ISO-9660 file system image and prints them. OPTIONS -help Prints

clnt_freeres(3) - library routines for remote procedure call
These routines allow C programs to make procedure calls on other machines across the network. First, the client calls a procedure to send a data packet to the s

ExtUtils::Constant::XS(3pm) - generate C code for XS modules
ExtUtils::Constant::XS overrides ExtUtils::Constant::Base to generate C code for XS modules constants. BUGS Nothing is documented. Probably others. AUTHOR Nicho

acl_equiv_mode(3) - check for an equivalent ACL (Man Page)
The acl_equiv_mode() function checks if the ACL pointed to by the argument acl contains only the required ACL entries of tag types ACL_USER_OBJ, ACL_GROUP_OBJ,

XInsertModifiermapEntry(3) - manipulate keyboard encoding an
The XChangeKeyboardMapping function defines the symbols for the specified number of KeyCodes starting with first_keycode. The symbols for KeyCodes outside this

gdbus(1) - Tool for working with D-Bus objects (Man Page)...
gdbus is a simple tool for working with D-Bus objects. COMMANDS introspect Prints out interfaces and property values for a remote object. For this to work, the

Tcl_JoinThread(3) - Tcl thread support - Linux manual page
Tcl provides Tcl_CreateThread for creating threads. The caller can determine the size of the stack given to the new thread and modify the behaviour through the

glPopName(3gl) - push and pop the name stack (Man Page).....
The name stack is used during selection mode to allow sets of rendering commands to be uniquely identified. It consists of an ordered set of unsigned integers a

Tcl_UniCharAtIndex(3) - routines for manipulating UTF-8 stri
These routines convert between UTF-8 strings and Tcl_UniChars. A Tcl_UniChar is a Unicode character represented as an unsigned, fixed-size quantity. A UTF-8 cha

pnmtopnm(1) - copy a PNM image lbAC - Linux manual page.....
This program is part of Netpbm(1) pnmtopnm simply copies a PNM image to Standard Output. The output has the same major PNM format (PBM, PGM, or PPM) and maxval

httpd2(8) - Apache Hypertext Transfer Protocol Server.......
httpd is the Apache HyperText Transfer Protocol (HTTP) server program. It is designed to be run as a standalone daemon process. When used like this it will crea

We can't live, work or learn in freedom unless the software we use is free.