.Dd November 4, 2020 .Dt libfshfs 3 .Os libfshfs .Sh NAME .Nm libfshfs.h .Nd Library to access the Hierarchical File System (HFS) format .Sh SYNOPSIS .In libfshfs.h .Pp Support functions .Ft const char * .Fn libfshfs_get_version "void" .Ft int .Fn libfshfs_get_access_flags_read "void" .Ft int .Fn libfshfs_get_codepage "int *codepage" "libfshfs_error_t **error" .Ft int .Fn libfshfs_set_codepage "int codepage" "libfshfs_error_t **error" .Ft int .Fn libfshfs_check_volume_signature "const char *filename" "libfshfs_error_t **error" .Pp Available when compiled with wide character string support: .Ft int .Fn libfshfs_check_volume_signature_wide "const wchar_t *filename" "libfshfs_error_t **error" .Pp Available when compiled with libbfio support: .Ft int .Fn libfshfs_check_volume_signature_file_io_handle "libbfio_handle_t *file_io_handle" "libfshfs_error_t **error" .Pp Notify functions .Ft void .Fn libfshfs_notify_set_verbose "int verbose" .Ft int .Fn libfshfs_notify_set_stream "FILE *stream" "libfshfs_error_t **error" .Ft int .Fn libfshfs_notify_stream_open "const char *filename" "libfshfs_error_t **error" .Ft int .Fn libfshfs_notify_stream_close "libfshfs_error_t **error" .Pp Error functions .Ft void .Fn libfshfs_error_free "libfshfs_error_t **error" .Ft int .Fn libfshfs_error_fprint "libfshfs_error_t *error" "FILE *stream" .Ft int .Fn libfshfs_error_sprint "libfshfs_error_t *error" "char *string" "size_t size" .Ft int .Fn libfshfs_error_backtrace_fprint "libfshfs_error_t *error" "FILE *stream" .Ft int .Fn libfshfs_error_backtrace_sprint "libfshfs_error_t *error" "char *string" "size_t size" .Pp Volume functions .Ft int .Fn libfshfs_volume_initialize "libfshfs_volume_t **volume" "libfshfs_error_t **error" .Ft int .Fn libfshfs_volume_free "libfshfs_volume_t **volume" "libfshfs_error_t **error" .Ft int .Fn libfshfs_volume_signal_abort "libfshfs_volume_t *volume" "libfshfs_error_t **error" .Ft int .Fn libfshfs_volume_open "libfshfs_volume_t *volume" "const char *filename" "int access_flags" "libfshfs_error_t **error" .Ft int .Fn libfshfs_volume_close "libfshfs_volume_t *volume" "libfshfs_error_t **error" .Ft int .Fn libfshfs_volume_get_utf8_name_size "libfshfs_volume_t *volume" "size_t *utf8_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_volume_get_utf8_name "libfshfs_volume_t *volume" "uint8_t *utf8_string" "size_t utf8_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_volume_get_utf16_name_size "libfshfs_volume_t *volume" "size_t *utf16_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_volume_get_utf16_name "libfshfs_volume_t *volume" "uint16_t *utf16_string" "size_t utf16_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_volume_get_file_entry_by_identifier "libfshfs_volume_t *volume" "uint32_t identifier" "libfshfs_file_entry_t **file_entry" "libfshfs_error_t **error" .Ft int .Fn libfshfs_volume_get_root_directory "libfshfs_volume_t *volume" "libfshfs_file_entry_t **file_entry" "libfshfs_error_t **error" .Ft int .Fn libfshfs_volume_get_file_entry_by_utf8_path "libfshfs_volume_t *volume" "const uint8_t *utf8_string" "size_t utf8_string_length" "libfshfs_file_entry_t **file_entry" "libfshfs_error_t **error" .Ft int .Fn libfshfs_volume_get_file_entry_by_utf16_path "libfshfs_volume_t *volume" "const uint16_t *utf16_string" "size_t utf16_string_length" "libfshfs_file_entry_t **file_entry" "libfshfs_error_t **error" .Pp Available when compiled with wide character string support: .Ft int .Fn libfshfs_volume_open_wide "libfshfs_volume_t *volume" "const wchar_t *filename" "int access_flags" "libfshfs_error_t **error" .Pp Available when compiled with libbfio support: .Ft int .Fn libfshfs_volume_open_file_io_handle "libfshfs_volume_t *volume" "libbfio_handle_t *file_io_handle" "int access_flags" "libfshfs_error_t **error" .Pp File entry functions .Ft int .Fn libfshfs_file_entry_free "libfshfs_file_entry_t **file_entry" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_identifier "libfshfs_file_entry_t *file_entry" "uint32_t *identifier" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_parent_identifier "libfshfs_file_entry_t *file_entry" "uint32_t *parent_identifier" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_link_identifier "libfshfs_file_entry_t *file_entry" "uint32_t *link_identifier" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_creation_time "libfshfs_file_entry_t *file_entry" "uint32_t *hfs_time" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_modification_time "libfshfs_file_entry_t *file_entry" "uint32_t *hfs_time" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_entry_modification_time "libfshfs_file_entry_t *file_entry" "uint32_t *hfs_time" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_access_time "libfshfs_file_entry_t *file_entry" "uint32_t *hfs_time" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_backup_time "libfshfs_file_entry_t *file_entry" "uint32_t *hfs_time" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_added_time "libfshfs_file_entry_t *file_entry" "int32_t *posix_time" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_file_mode "libfshfs_file_entry_t *file_entry" "uint16_t *file_mode" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_owner_identifier "libfshfs_file_entry_t *file_entry" "uint32_t *owner_identifier" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_group_identifier "libfshfs_file_entry_t *file_entry" "uint32_t *group_identifier" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_utf8_name_size "libfshfs_file_entry_t *file_entry" "size_t *utf8_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_utf8_name "libfshfs_file_entry_t *file_entry" "uint8_t *utf8_string" "size_t utf8_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_utf16_name_size "libfshfs_file_entry_t *file_entry" "size_t *utf16_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_utf16_name "libfshfs_file_entry_t *file_entry" "uint16_t *utf16_string" "size_t utf16_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_utf8_symbolic_link_target_size "libfshfs_file_entry_t *file_entry" "size_t *utf8_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_utf8_symbolic_link_target "libfshfs_file_entry_t *file_entry" "uint8_t *utf8_string" "size_t utf8_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_utf16_symbolic_link_target_size "libfshfs_file_entry_t *file_entry" "size_t *utf16_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_utf16_symbolic_link_target "libfshfs_file_entry_t *file_entry" "uint16_t *utf16_string" "size_t utf16_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_number_of_extended_attributes "libfshfs_file_entry_t *file_entry" "int *number_of_extended_attributes" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_extended_attribute_by_index "libfshfs_file_entry_t *file_entry" "int extended_attribute_index" "libfshfs_extended_attribute_t **extended_attribute" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_has_extended_attribute_by_utf8_name "libfshfs_file_entry_t *file_entry" "const uint8_t *utf8_string" "size_t utf8_string_length" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_has_extended_attribute_by_utf16_name "libfshfs_file_entry_t *file_entry" "const uint16_t *utf16_string" "size_t utf16_string_length" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_extended_attribute_by_utf8_name "libfshfs_file_entry_t *file_entry" "const uint8_t *utf8_string" "size_t utf8_string_length" "libfshfs_extended_attribute_t **extended_attribute" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_extended_attribute_by_utf16_name "libfshfs_file_entry_t *file_entry" "const uint16_t *utf16_string" "size_t utf16_string_length" "libfshfs_extended_attribute_t **extended_attribute" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_number_of_sub_file_entries "libfshfs_file_entry_t *file_entry" "int *number_of_sub_file_entries" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_sub_file_entry_by_index "libfshfs_file_entry_t *file_entry" "int sub_file_entry_index" "libfshfs_file_entry_t **sub_file_entry" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_sub_file_entry_by_utf8_name "libfshfs_file_entry_t *file_entry" "const uint8_t *utf8_string" "size_t utf8_string_length" "libfshfs_file_entry_t **sub_file_entry" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_sub_file_entry_by_utf16_name "libfshfs_file_entry_t *file_entry" "const uint16_t *utf16_string" "size_t utf16_string_length" "libfshfs_file_entry_t **sub_file_entry" "libfshfs_error_t **error" .Ft ssize_t .Fn libfshfs_file_entry_read_buffer "libfshfs_file_entry_t *file_entry" "void *buffer" "size_t buffer_size" "libfshfs_error_t **error" .Ft ssize_t .Fn libfshfs_file_entry_read_buffer_at_offset "libfshfs_file_entry_t *file_entry" "void *buffer" "size_t buffer_size" "off64_t offset" "libfshfs_error_t **error" .Ft off64_t .Fn libfshfs_file_entry_seek_offset "libfshfs_file_entry_t *file_entry" "off64_t offset" "int whence" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_offset "libfshfs_file_entry_t *file_entry" "off64_t *offset" "libfshfs_error_t **error" .Ft int .Fn libfshfs_file_entry_get_size "libfshfs_file_entry_t *file_entry" "size64_t *size" "libfshfs_error_t **error" .Pp Extended attribute functions .Ft int .Fn libfshfs_extended_attribute_free "libfshfs_extended_attribute_t **extended_attribute" "libfshfs_error_t **error" .Ft int .Fn libfshfs_extended_attribute_get_utf8_name_size "libfshfs_extended_attribute_t *extended_attribute" "size_t *utf8_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_extended_attribute_get_utf8_name "libfshfs_extended_attribute_t *extended_attribute" "uint8_t *utf8_string" "size_t utf8_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_extended_attribute_get_utf16_name_size "libfshfs_extended_attribute_t *extended_attribute" "size_t *utf16_string_size" "libfshfs_error_t **error" .Ft int .Fn libfshfs_extended_attribute_get_utf16_name "libfshfs_extended_attribute_t *extended_attribute" "uint16_t *utf16_string" "size_t utf16_string_size" "libfshfs_error_t **error" .Sh DESCRIPTION The .Fn libfshfs_get_version function is used to retrieve the library version. .Sh RETURN VALUES Most of the functions return NULL or \-1 on error, dependent on the return type. For the actual return values see "libfshfs.h". .Sh ENVIRONMENT None .Sh FILES None .Sh NOTES libfshfs can be compiled with wide character support (wchar_t). .sp To compile libfshfs with wide character support use: .Ar ./configure --enable-wide-character-type=yes or define: .Ar _UNICODE or .Ar UNICODE during compilation. .sp .Ar LIBFSHFS_WIDE_CHARACTER_TYPE in libfshfs/features.h can be used to determine if libfshfs was compiled with wide character support. .Sh BUGS Please report bugs of any kind on the project issue tracker: https://github.com/libyal/libfshfs/issues .Sh AUTHOR These man pages are generated from "libfshfs.h". .Sh COPYRIGHT Copyright (C) 2009-2020, Joachim Metz . .sp This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. .Sh SEE ALSO the libfshfs.h include file