# DBENV->set_func_ioinfo |

`

###

    #include <db.h>

    int
    DBENV->set_func_ioinfo(DB_ENV *dbenv,
        int (*func_ioinfo)(const char *path,
        int fd, u_int32_t *mbytesp, u_int32_t *bytesp, u_int32_t *iosizep));

# Description

The Berkeley DB library requires the ability to determine the size and I/O characteristics of a file. The func_ioinfo argument must conform to the following interface:

>     int ioinfo(const char *path, int fd,
>     u_int32_t *mbytesp, u_int32_t *bytesp, u_int32_t *iosizep);

The path argument is the pathname of the file to be checked, and the fd argument is an open file descriptor on the file.

If the mbytesp and bytesp arguments are non-NULL, the ioinfo function must return in them the size of the file: the number of megabytes in the file into the memory location referenced by the mbytesp argument, and the number of bytes over and above that number of megabytes into the memory location referenced by the bytesp argument.

In addition, if the iosizep argument is non-NULL, the ioinfo function must return the optimum granularity for I/O operations to the file in the memory location referenced by it.

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

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

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

The DBENV->set_func_ioinfo 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