Berkeley DB: log_file
Полезная информация


#include <db.h>

int log_file(DB_LOG *logp, const DB_LSN *lsn, char *namep, size_t len);


The log_file function maps DB_LSN structures to file names, copying the name of the file containing the record named by lsn into the memory location referenced by namep.

The len argument is the length of the namep buffer in bytes. If namep is too short to hold the file name, log_file will return ENOMEM. (Log file names are normally quite short, on the order of 10 characters.)

This mapping of DB_LSN structures to files is needed for database administration. For example, a transaction manager typically records the earliest DB_LSN needed for restart, and the database administrator may want to archive log files to tape when they contain only DB_LSN entries before the earliest one needed for restart.

The log_file function returns the value of errno on failure, and 0 on success.


If a fatal error occurs in Berkeley DB, the log_file function may fail and return DB_RUNRECOVERY, at which point all subsequent database calls will also return DB_RUNRECOVERY.

The log_file function may fail and return errno for any of the errors specified for the following Berkeley DB and C library functions: abort(3), close(3), fcntl(3), fflush(3), fprintf(3), free(3), getenv(3), getpid(3), getuid(3), isdigit(3), malloc(3), memcpy(3), memset(3), open(3), sigfillset(3), sigprocmask(3), snprintf(3), stat(3), strcpy(3), strerror(3), strlen(3), unlink(3), vfprintf(3), and vsnprintf(3).

In addition, the log_file function may fail and return errno for the following conditions:

The supplied buffer was too small to hold the log file name.

See Also

log_archive, log_close, log_compare, log_file, log_flush, log_get, log_open, log_put, log_register, log_stat, log_unlink and log_unregister.