2 changed files with 167 additions and 0 deletions
@ -0,0 +1,91 @@ |
|||
/* gdbm.h - The include file for dbm users. */ |
|||
|
|||
/* GNU DBM - DataBase Manager (database subroutines) by Philip A. Nelson
|
|||
Copyright (C) 1989 Free Software Foundation, Inc. |
|||
|
|||
This program is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU General Public License |
|||
along with this program; if not, write to the Free Software |
|||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
|||
|
|||
You may contact the author by: |
|||
e-mail: phil@wwu.edu |
|||
us-mail: Philip A. Nelson |
|||
Computer Science Department |
|||
Western Washington University |
|||
Bellingham, WA 98226 |
|||
phone: (206) 676-3035 |
|||
|
|||
*************************************************************************/ |
|||
|
|||
/* Parameters to gdbm_open for READERS, WRITERS, and WRITERS who
|
|||
can create the database. */ |
|||
#define GDBM_READER 0 |
|||
#define GDBM_WRITER 1 |
|||
#define GDBM_WRCREAT 2 |
|||
#define GDBM_NEWDB 3 |
|||
|
|||
/* Parameters to gdbm_store for simple insertion or replacement. */ |
|||
#define GDBM_INSERT 0 |
|||
#define GDBM_REPLACE 1 |
|||
|
|||
|
|||
/* The data and key structure. This structure is defined for compatibility. */ |
|||
typedef struct { |
|||
char *dptr; |
|||
int dsize; |
|||
} datum; |
|||
|
|||
|
|||
/* The file information header. This is good enough for most applications. */ |
|||
typedef struct {int dummy[10];} *GDBM_FILE; |
|||
|
|||
|
|||
/* These are the routines! */ |
|||
|
|||
extern GDBM_FILE gdbm_open (); |
|||
|
|||
extern void gdbm_close (); |
|||
|
|||
extern datum gdbm_fetch (); |
|||
|
|||
extern int gdbm_store (); |
|||
|
|||
extern int gdbm_delete (); |
|||
|
|||
extern datum gdbm_firstkey (); |
|||
|
|||
extern datum gdbm_nextkey (); |
|||
|
|||
extern int gdbm_reorganize (); |
|||
|
|||
|
|||
/* gdbm sends back the following error codes in the variable gdbm_errno. */ |
|||
typedef enum { NO_ERROR, |
|||
MALLOC_ERROR, |
|||
BLOCK_SIZE_ERROR, |
|||
FILE_OPEN_ERROR, |
|||
FILE_WRITE_ERROR, |
|||
FILE_SEEK_ERROR, |
|||
FILE_READ_ERROR, |
|||
BAD_MAGIC_NUMBER, |
|||
EMPTY_DATABASE, |
|||
CANT_BE_READER, |
|||
CANT_BE_WRITER, |
|||
READER_CANT_RECOVER, |
|||
READER_CANT_DELETE, |
|||
READER_CANT_STORE, |
|||
READER_CANT_REORGANIZE, |
|||
UNKNOWN_UPDATE, |
|||
ITEM_NOT_FOUND, |
|||
REORGANIZE_FAILED, |
|||
CANNOT_REPLACE} |
|||
gdbm_error; |
|||
@ -0,0 +1,76 @@ |
|||
/* declarations for getopt
|
|||
Copyright (C) 1989 Free Software Foundation, Inc. |
|||
|
|||
This program is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 1, or (at your option) |
|||
any later version. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU General Public License |
|||
along with this program; if not, write to the Free Software |
|||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ |
|||
|
|||
/* For communication from `getopt' to the caller.
|
|||
When `getopt' finds an option that takes an argument, |
|||
the argument value is returned here. |
|||
Also, when `ordering' is RETURN_IN_ORDER, |
|||
each non-option ARGV-element is returned here. */ |
|||
|
|||
extern char *optarg; |
|||
|
|||
/* Index in ARGV of the next element to be scanned.
|
|||
This is used for communication to and from the caller |
|||
and for communication between successive calls to `getopt'. |
|||
|
|||
On entry to `getopt', zero means this is the first call; initialize. |
|||
|
|||
When `getopt' returns EOF, this is the index of the first of the |
|||
non-option elements that the caller should itself scan. |
|||
|
|||
Otherwise, `optind' communicates from one call to the next |
|||
how much of ARGV has been scanned so far. */ |
|||
|
|||
extern int optind; |
|||
|
|||
/* Callers store zero here to inhibit the error message `getopt' prints
|
|||
for unrecognized options. */ |
|||
|
|||
extern int opterr; |
|||
|
|||
/* Describe the long-named options requested by the application.
|
|||
_GETOPT_LONG_OPTIONS is a vector of `struct option' terminated by an |
|||
element containing a name which is zero. |
|||
The field `has_arg' is: |
|||
0 if the option does not take an argument, |
|||
1 if the option requires an argument, |
|||
2 if the option takes an optional argument. |
|||
If the field `flag' is nonzero, it points to a variable that is set to |
|||
the value given in the field `val' when the option is found, but |
|||
left unchanged if the option is not found. */ |
|||
|
|||
struct option |
|||
{ |
|||
char *name; |
|||
int has_arg; |
|||
int *flag; |
|||
int val; |
|||
}; |
|||
|
|||
extern struct option *_getopt_long_options; |
|||
|
|||
/* Name of long-named option actually found.
|
|||
Only changed when a long-named option is found. */ |
|||
|
|||
extern char *_getopt_option_name; |
|||
|
|||
/* The index in GETOPT_LONG_OPTIONS of the long-named option found.
|
|||
Only valid when a long-named option has been found by the most |
|||
recent call to `getopt'. */ |
|||
|
|||
extern int option_index; |
|||
|
|||
Loading…
Reference in new issue