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


#include <db_cxx.h>

int DbLog::file(const DbLsn *lsn, char *namep, size_t len);


The DbLog::file method maps DbLsn objects 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, DbLog::file will return ENOMEM. (Log file names are normally quite short, on the order of 10 characters.)

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

The DbLog::file method either returns errno or throws an exception that encapsulates an errno on failure, and 0 on success.


If a fatal error occurs in Berkeley DB, the DbLog::file method may fail and either return DB_RUNRECOVERY or throw an exception encapsulating DB_RUNRECOVERY, at which point all subsequent database calls will also fail in the same way. Methods marked as returning errno will, by default, throw an exception that encapsulates the error information. The default error behavior can be changed, see DbException.

The DbLog::file method may fail and throw an exception 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 DbLog::file method may fail and throw an exception or return errno for the following conditions:

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



See Also

DbLog::archive, DbLog::close, DbLog::compare, DbLog::file, DbLog::flush, DbLog::get, DbLog::open, DbLog::put, DbLog::db_register, DbLog::stat, DbLog::unlink and DbLog::db_unregister.