# DBENV->set_func_seek |

`

###

    #include <db.h>

    int
    DBENV->set_func_seek(DB_ENV *dbenv,
        int (*func_seek)(int fd, size_t pgsize,
        db_pgno_t pageno, u_int32_t relative, int rewind, int whence));

# Description

The Berkeley DB library requires the ability to specify that a subsequent read from or write to a file will occur at a specific location in that file. The func_seek argument must conform to the following interface:

>     int seek(int fd, size_t pgsize, db_pgno_t pageno,
>     u_int32_t relative, int rewind, int whence);

The fd argument is an open file descriptor on the file.

The seek function must cause a subsequent read from or write to the file to occur at a byte offset specified by the calculation:

>     (pgsize * pageno) + relative

If rewind is non-zero, the byte offset is treated as a backwards seek, not a forwards one.

The whence argument specifies where in the file the byte offset is relative to, as described by the IEEE/ANSI Std 1003.1 (POSIX) lseek system call.

The func_seek function must return the value of errno on failure and 0 on success.

The DBENV->set_func_seek interface affects the entire application, not only the environment in which it is called.

The DBENV->set_func_seek interface may only be used to configure Berkeley DB before the DBENV->open interface is called.

The DBENV->set_func_seek function returns a non-zero error value on failure and 0 on success.

# Errors

EINVAL
  An invalid flag value or parameter was specified.

  Called after DBENV->open was called.

# See Also

DBENV->set_func_close, DBENV->set_func_dirfree, DBENV->set_func_dirlist, DBENV->set_func_exists, DBENV->set_func_free, DBENV->set_func_fsync, DBENV->set_func_ioinfo, DBENV->set_func_malloc, DBENV->set_func_map, DBENV->set_func_open, DBENV->set_func_read, DBENV->set_func_realloc, DBENV->set_func_seek, DBENV->set_func_sleep, DBENV->set_func_unlink, DBENV->set_func_unmap, DBENV->set_func_write and DBENV->set_func_yield.`

Copyright Sleepycat Software