Provided by: libesedb-dev_20240420-1_amd64 bug

NAME

       libesedb.h — Library to access the Extensible Storage Engine (ESE) Database File (EDB) format

SYNOPSIS

       #include <libesedb.h>

       Support functions

       const char *
       libesedb_get_version(void);

       int
       libesedb_get_access_flags_read(void);

       int
       libesedb_get_codepage(int *codepage, libesedb_error_t **error);

       int
       libesedb_set_codepage(int codepage, libesedb_error_t **error);

       int
       libesedb_check_file_signature(const char *filename, libesedb_error_t **error);

       Available when compiled with wide character string support:

       int
       libesedb_check_file_signature_wide(const wchar_t *filename, libesedb_error_t **error);

       Available when compiled with libbfio support:

       int
       libesedb_check_file_signature_file_io_handle(libbfio_handle_t *bfio_handle, libesedb_error_t **error);

       Notify functions

       void
       libesedb_notify_set_verbose(int verbose);

       int
       libesedb_notify_set_stream(FILE *stream, libesedb_error_t **error);

       int
       libesedb_notify_stream_open(const char *filename, libesedb_error_t **error);

       int
       libesedb_notify_stream_close(libesedb_error_t **error);

       Error functions

       void
       libesedb_error_free(libesedb_error_t **error);

       int
       libesedb_error_fprint(libesedb_error_t *error, FILE *stream);

       int
       libesedb_error_sprint(libesedb_error_t *error, char *string, size_t size);

       int
       libesedb_error_backtrace_fprint(libesedb_error_t *error, FILE *stream);

       int
       libesedb_error_backtrace_sprint(libesedb_error_t *error, char *string, size_t size);

       File functions

       int
       libesedb_file_initialize(libesedb_file_t **file, libesedb_error_t **error);

       int
       libesedb_file_free(libesedb_file_t **file, libesedb_error_t **error);

       int
       libesedb_file_signal_abort(libesedb_file_t *file, libesedb_error_t **error);

       int
       libesedb_file_open(libesedb_file_t     *file,     const     char     *filename,     int     access_flags,
           libesedb_error_t **error);

       int
       libesedb_file_close(libesedb_file_t *file, libesedb_error_t **error);

       int
       libesedb_file_get_type(libesedb_file_t *file, uint32_t *type, libesedb_error_t **error);

       int
       libesedb_file_get_format_version(libesedb_file_t         *file,         uint32_t         *format_version,
           uint32_t *format_revision, libesedb_error_t **error);

       int
       libesedb_file_get_creation_format_version(libesedb_file_t      *file,      uint32_t      *format_version,
           uint32_t *format_revision, libesedb_error_t **error);

       int
       libesedb_file_get_page_size(libesedb_file_t *file, uint32_t *page_size, libesedb_error_t **error);

       int
       libesedb_file_get_number_of_tables(libesedb_file_t         *file,         int          *number_of_tables,
           libesedb_error_t **error);

       int
       libesedb_file_get_table(libesedb_file_t     *file,    int    table_entry,    libesedb_table_t    **table,
           libesedb_error_t **error);

       int
       libesedb_file_get_table_by_utf8_name(libesedb_file_t     *file,     const      uint8_t      *utf8_string,
           size_t utf8_string_length, libesedb_table_t **table, libesedb_error_t **error);

       int
       libesedb_file_get_table_by_utf16_name(libesedb_file_t     *file,     const     uint16_t    *utf16_string,
           size_t utf16_string_length, libesedb_table_t **table, libesedb_error_t **error);

       Available when compiled with wide character string support:

       int
       libesedb_file_open_wide(libesedb_file_t   *file,   const    wchar_t    *filename,    int    access_flags,
           libesedb_error_t **error);

       Available when compiled with libbfio support:

       int
       libesedb_file_open_file_io_handle(libesedb_file_t      *file,      libbfio_handle_t      *file_io_handle,
           int access_flags, libesedb_error_t **error);

       Table functions

       int
       libesedb_table_free(libesedb_table_t **table, libesedb_error_t **error);

       int
       libesedb_table_get_identifier(libesedb_table_t *table, uint32_t *identifier, libesedb_error_t **error);

       int
       libesedb_table_get_utf8_name_size(libesedb_table_t        *table,        size_t        *utf8_string_size,
           libesedb_error_t **error);

       int
       libesedb_table_get_utf8_name(libesedb_table_t  *table,  uint8_t  *utf8_string,  size_t  utf8_string_size,
           libesedb_error_t **error);

       int
       libesedb_table_get_utf16_name_size(libesedb_table_t       *table,       size_t        *utf16_string_size,
           libesedb_error_t **error);

       int
       libesedb_table_get_utf16_name(libesedb_table_t  *table, uint16_t *utf16_string, size_t utf16_string_size,
           libesedb_error_t **error);

       int
       libesedb_table_get_utf8_template_name_size(libesedb_table_t     *table,     size_t     *utf8_string_size,
           libesedb_error_t **error);

       int
       libesedb_table_get_utf8_template_name(libesedb_table_t        *table,        uint8_t        *utf8_string,
           size_t utf8_string_size, libesedb_error_t **error);

       int
       libesedb_table_get_utf16_template_name_size(libesedb_table_t    *table,    size_t     *utf16_string_size,
           libesedb_error_t **error);

       int
       libesedb_table_get_utf16_template_name(libesedb_table_t       *table,       uint16_t       *utf16_string,
           size_t utf16_string_size, libesedb_error_t **error);

       int
       libesedb_table_get_number_of_columns(libesedb_table_t  *table,  int  *number_of_columns,  uint8_t  flags,
           libesedb_error_t **error);

       int
       libesedb_table_get_column(libesedb_table_t   *table,   int   column_entry,   libesedb_column_t  **column,
           uint8_t flags, libesedb_error_t **error);

       int
       libesedb_table_get_number_of_indexes(libesedb_table_t       *table,        int        *number_of_indexes,
           libesedb_error_t **error);

       int
       libesedb_table_get_index(libesedb_table_t    *table,    int    index_entry,   libesedb_index_t   **index,
           libesedb_error_t **error);

       int
       libesedb_table_get_number_of_records(libesedb_table_t       *table,        int        *number_of_records,
           libesedb_error_t **error);

       int
       libesedb_table_get_record(libesedb_table_t   *table,   int   record_entry,   libesedb_record_t  **record,
           libesedb_error_t **error);

       Column functions

       int
       libesedb_column_free(libesedb_column_t **column, libesedb_error_t **error);

       int
       libesedb_column_get_identifier(libesedb_column_t         *column,          uint32_t          *identifier,
           libesedb_error_t **error);

       int
       libesedb_column_get_type(libesedb_column_t *column, uint32_t *type, libesedb_error_t **error);

       int
       libesedb_column_get_utf8_name_size(libesedb_column_t       *column,       size_t       *utf8_string_size,
           libesedb_error_t **error);

       int
       libesedb_column_get_utf8_name(libesedb_column_t *column, uint8_t *utf8_string,  size_t  utf8_string_size,
           libesedb_error_t **error);

       int
       libesedb_column_get_utf16_name_size(libesedb_column_t       *column,      size_t      *utf16_string_size,
           libesedb_error_t **error);

       int
       libesedb_column_get_utf16_name(libesedb_column_t         *column,         uint16_t         *utf16_string,
           size_t utf16_string_size, libesedb_error_t **error);

       Index functions

       int
       libesedb_index_free(libesedb_index_t **index, libesedb_error_t **error);

       int
       libesedb_index_get_identifier(libesedb_index_t *index, uint32_t *identifier, libesedb_error_t **error);

       int
       libesedb_index_get_utf8_name_size(libesedb_index_t        *index,        size_t        *utf8_string_size,
           libesedb_error_t **error);

       int
       libesedb_index_get_utf8_name(libesedb_index_t  *index,  uint8_t  *utf8_string,  size_t  utf8_string_size,
           libesedb_error_t **error);

       int
       libesedb_index_get_utf16_name_size(libesedb_index_t        *index,       size_t       *utf16_string_size,
           libesedb_error_t **error);

       int
       libesedb_index_get_utf16_name(libesedb_index_t *index, uint16_t *utf16_string, size_t  utf16_string_size,
           libesedb_error_t **error);

       int
       libesedb_index_get_number_of_records(libesedb_index_t        *index,        int       *number_of_records,
           libesedb_error_t **error);

       int
       libesedb_index_get_record(libesedb_index_t  *index,   int   record_entry,   libesedb_record_t   **record,
           libesedb_error_t **error);

       Record (row) functions

       int
       libesedb_record_free(libesedb_record_t **record, libesedb_error_t **error);

       int
       libesedb_record_get_number_of_values(libesedb_record_t        *record,       int       *number_of_values,
           libesedb_error_t **error);

       int
       libesedb_record_get_column_identifier(libesedb_record_t         *record,         int         value_entry,
           uint32_t *column_identifier, libesedb_error_t **error);

       int
       libesedb_record_get_column_type(libesedb_record_t   *record,   int  value_entry,  uint32_t  *column_type,
           libesedb_error_t **error);

       int
       libesedb_record_get_utf8_column_name_size(libesedb_record_t       *record,        int        value_entry,
           size_t *utf8_string_size, libesedb_error_t **error);

       int
       libesedb_record_get_utf8_column_name(libesedb_record_t  *record,  int  value_entry, uint8_t *utf8_string,
           size_t utf8_string_size, libesedb_error_t **error);

       int
       libesedb_record_get_utf16_column_name_size(libesedb_record_t       *record,       int        value_entry,
           size_t *utf16_string_size, libesedb_error_t **error);

       int
       libesedb_record_get_utf16_column_name(libesedb_record_t *record, int value_entry, uint16_t *utf16_string,
           size_t utf16_string_size, libesedb_error_t **error);

       int
       libesedb_record_get_value_data_size(libesedb_record_t  *record, int value_entry, size_t *value_data_size,
           libesedb_error_t **error);

       int
       libesedb_record_get_value_data(libesedb_record_t   *record,   int   value_entry,   uint8_t   *value_data,
           size_t value_data_size, libesedb_error_t **error);

       int
       libesedb_record_get_value_data_flags(libesedb_record_t          *record,         int         value_entry,
           uint8_t *value_data_flags, libesedb_error_t **error);

       int
       libesedb_record_get_value_boolean(libesedb_record_t *record,  int  value_entry,  uint8_t  *value_boolean,
           libesedb_error_t **error);

       int
       libesedb_record_get_value_8bit(libesedb_record_t   *record,   int   value_entry,   uint8_t   *value_8bit,
           libesedb_error_t **error);

       int
       libesedb_record_get_value_16bit(libesedb_record_t  *record,  int  value_entry,   uint16_t   *value_16bit,
           libesedb_error_t **error);

       int
       libesedb_record_get_value_32bit(libesedb_record_t   *record,   int  value_entry,  uint32_t  *value_32bit,
           libesedb_error_t **error);

       int
       libesedb_record_get_value_64bit(libesedb_record_t  *record,  int  value_entry,   uint64_t   *value_64bit,
           libesedb_error_t **error);

       int
       libesedb_record_get_value_filetime(libesedb_record_t  *record, int value_entry, uint64_t *value_filetime,
           libesedb_error_t **error);

       int
       libesedb_record_get_value_floating_point_32bit(libesedb_record_t      *record,      int      value_entry,
           float *value_floating_point_32bit, libesedb_error_t **error);

       int
       libesedb_record_get_value_floating_point_64bit(libesedb_record_t      *record,      int      value_entry,
           double *value_floating_point_64bit, libesedb_error_t **error);

       int
       libesedb_record_get_value_utf8_string_size(libesedb_record_t       *record,       int        value_entry,
           size_t *utf8_string_size, libesedb_error_t **error);

       int
       libesedb_record_get_value_utf8_string(libesedb_record_t  *record,  int value_entry, uint8_t *utf8_string,
           size_t utf8_string_size, libesedb_error_t **error);

       int
       libesedb_record_get_value_utf16_string_size(libesedb_record_t       *record,       int       value_entry,
           size_t *utf16_string_size, libesedb_error_t **error);

       int
       libesedb_record_get_value_utf16_string(libesedb_record_t         *record,         int        value_entry,
           uint16_t *utf16_string, size_t utf16_string_size, libesedb_error_t **error);

       int
       libesedb_record_get_value_binary_data_size(libesedb_record_t       *record,       int        value_entry,
           size_t *binary_data_size, libesedb_error_t **error);

       int
       libesedb_record_get_value_binary_data(libesedb_record_t  *record,  int value_entry, uint8_t *binary_data,
           size_t binary_data_size, libesedb_error_t **error);

       int
       libesedb_record_is_long_value(libesedb_record_t *record, int value_entry, libesedb_error_t **error);

       int
       libesedb_record_is_multi_value(libesedb_record_t *record, int value_entry, libesedb_error_t **error);

       int
       libesedb_record_get_long_value(libesedb_record_t           *record,           int            value_entry,
           libesedb_long_value_t **long_value, libesedb_error_t **error);

       int
       libesedb_record_get_multi_value(libesedb_record_t           *record,           int           value_entry,
           libesedb_multi_value_t **multi_value, libesedb_error_t **error);

       Long value functions

       int
       libesedb_long_value_free(libesedb_long_value_t **long_value, libesedb_error_t **error);

       int
       libesedb_long_value_get_data_size(libesedb_long_value_t      *long_value,      size64_t       *data_size,
           libesedb_error_t **error);

       int
       libesedb_long_value_get_data(libesedb_long_value_t   *long_value,   uint8_t   *data,   size_t  data_size,
           libesedb_error_t **error);

       int
       libesedb_long_value_get_number_of_data_segments(libesedb_long_value_t                        *long_value,
           int *number_of_data_segments, libesedb_error_t **error);

       int
       libesedb_long_value_get_data_segment_size(libesedb_long_value_t   *long_value,   int  data_segment_index,
           size_t *data_size, libesedb_error_t **error);

       int
       libesedb_long_value_get_data_segment(libesedb_long_value_t    *long_value,    int     data_segment_index,
           uint8_t *data_segment, size_t data_size, libesedb_error_t **error);

       int
       libesedb_long_value_get_utf8_string_size(libesedb_long_value_t   *long_value,  size_t  *utf8_string_size,
           libesedb_error_t **error);

       int
       libesedb_long_value_get_utf8_string(libesedb_long_value_t     *long_value,     uint8_t      *utf8_string,
           size_t utf8_string_size, libesedb_error_t **error);

       int
       libesedb_long_value_get_utf16_string_size(libesedb_long_value_t  *long_value,  size_t *utf16_string_size,
           libesedb_error_t **error);

       int
       libesedb_long_value_get_utf16_string(libesedb_long_value_t    *long_value,    uint16_t     *utf16_string,
           size_t utf16_string_size, libesedb_error_t **error);

       Multi value functions

       int
       libesedb_multi_value_free(libesedb_multi_value_t **multi_value, libesedb_error_t **error);

       int
       libesedb_multi_value_get_column_type(libesedb_multi_value_t    *multi_value,    uint32_t    *column_type,
           libesedb_error_t **error);

       int
       libesedb_multi_value_get_number_of_values(libesedb_multi_value_t  *multi_value,  int   *number_of_values,
           libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_data_size(libesedb_multi_value_t     *multi_value,     int    value_entry,
           size_t *value_data_size, libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_data(libesedb_multi_value_t      *multi_value,      int       value_entry,
           uint8_t *value_data, size_t value_data_size, libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_8bit(libesedb_multi_value_t     *multi_value,    int    multi_value_index,
           uint8_t *value_8bit, libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_16bit(libesedb_multi_value_t    *multi_value,    int    multi_value_index,
           uint16_t *value_16bit, libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_32bit(libesedb_multi_value_t    *multi_value,    int    multi_value_index,
           uint32_t *value_32bit, libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_64bit(libesedb_multi_value_t    *multi_value,    int    multi_value_index,
           uint64_t *value_64bit, libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_floating_point_32bit(libesedb_multi_value_t                  *multi_value,
           int multi_value_index, float *value_32bit, libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_floating_point_64bit(libesedb_multi_value_t                  *multi_value,
           int multi_value_index, double *value_64bit, libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_filetime(libesedb_multi_value_t   *multi_value,   int   multi_value_index,
           uint64_t *value_filetime, libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_utf8_string_size(libesedb_multi_value_t                      *multi_value,
           int multi_value_index, size_t *utf8_string_size, libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_utf8_string(libesedb_multi_value_t  *multi_value,  int  multi_value_index,
           uint8_t *utf8_string, size_t utf8_string_size, libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_utf16_string_size(libesedb_multi_value_t                     *multi_value,
           int multi_value_index, size_t *utf16_string_size, libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_utf16_string(libesedb_multi_value_t  *multi_value,  int multi_value_index,
           uint16_t *utf16_string, size_t utf16_string_size, libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_binary_data_size(libesedb_multi_value_t                      *multi_value,
           int multi_value_index, size_t *binary_data_size, libesedb_error_t **error);

       int
       libesedb_multi_value_get_value_binary_data(libesedb_multi_value_t  *multi_value,  int  multi_value_index,
           uint8_t *binary_data, size_t binary_data_size, libesedb_error_t **error);

DESCRIPTION

       The libesedb_get_version() function is used to retrieve the library version.

RETURN VALUES

       Most of the functions return NULL or -1 on error, dependent on the return type.  For  the  actual  return
       values see "libesedb.h".

ENVIRONMENT

       None

FILES

       None

NOTES

       libesedb can be compiled with wide character support (wchar_t).

       To compile libesedb with wide character support use: ./configure --enable-wide-character-type=yes
        or define: _UNICODE
        or UNICODE
        during compilation.

       LIBESEDB_WIDE_CHARACTER_TYPE
        in libesedb/features.h can be used to determine if libesedb was compiled with wide character support.

BUGS

       Please report bugs of any kind on the project issue tracker: https://github.com/libyal/libesedb/issues

AUTHOR

       These man pages are generated from "libesedb.h".

COPYRIGHT

       Copyright (C) 2009-2024, Joachim Metz <joachim.metz@gmail.com>.

       This  is  free  software;  see  the  source  for  copying conditions.  There is NO warranty; not even for
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

SEE ALSO

       the libesedb.h include file

libesedb                                          April 1, 2019                                      libesedb(3)