Berkeley DB Reference Guide:
Programmer Notes


Name spaces

C Language Name Space

The Berkeley DB library is careful to avoid C language programmer name spaces, but there are a few potential areas for concern, mostly in the Berkeley DB include file db.h. The db.h include file defines a number of types and strings. Where possible, all of these types and strings are prefixed with "DB_" or "db_". There are a few notable exceptions.

The Berkeley DB library uses a macro named "__P" to configure for systems that do not provide ANSI C function prototypes. This could potentially collide with other systems using a "__P" macro for similar or different purposes.

The Berkeley DB library needs information about specifically sized types for each architecture. If they are not provided by the system, they are typedef'd in the db.h include file. The types that may be typedef'd by db.h include the following: u_int8_t, int16_t, u_int16_t, int32_t, u_int32_t, u_char, u_short, u_int, and u_long.

The Berkeley DB library declares a number of external routines. All these routines are prefixed with the strings "db_", "lock_", "log_", "memp_" or "txn_". All internal routines are prefixed with the strings "__db_", "__lock_", "__log_", "__memp_", or "__txn_".

Filesystem Name Space

Berkeley DB environments create or use some number of files in environment home directories. These files are named DB_CONFIG, "log.NNNNN" (for example, log.0000000003, where the number of digits following the dot is unspecified), or with the string prefix "__db" (for example, __db.001). Database files that match these names should not be created in the environment directory.


Copyright Sleepycat Software