libfsclfs(3)
π libfsclfs(3) β the header for libyal's CLFS access library, bestie β¨
okay so real talk, this whole page is about libfsclfs.h β the library that lets you poke around inside the Common Log File System (CLFS) format π it's giving forensic girlie, it's giving "I read the logs so you don't have to" π
β¨ SYNOPSIS β¨
#include <libfsclfs.h>
πΈ Support functions
const char *
libfsclfs_get_version(void);
int
libfsclfs_get_access_flags_read(void);
int
libfsclfs_get_codepage(int *codepage, libfsclfs_error_t **error);
int
libfsclfs_set_codepage(int codepage, libfsclfs_error_t **error);
π¦ Notify functions
void
libfsclfs_notify_set_verbose(int verbose);
int
libfsclfs_notify_set_stream(FILE *stream, libfsclfs_error_t **error);
int
libfsclfs_notify_stream_open(const char *filename,
libfsclfs_error_t **error);
int
libfsclfs_notify_stream_close(libfsclfs_error_t **error);
π Error functions
void
libfsclfs_error_free(libfsclfs_error_t **error);
int
libfsclfs_error_fprint(libfsclfs_error_t *error, FILE *stream);
int
libfsclfs_error_sprint(libfsclfs_error_t *error, char *string,
size_t size);
int
libfsclfs_error_backtrace_fprint(libfsclfs_error_t *error,
FILE *stream);
int
libfsclfs_error_backtrace_sprint(libfsclfs_error_t *error, char *string,
size_t size);
π Store functions
int
libfsclfs_store_initialize(libfsclfs_store_t **store,
libfsclfs_error_t **error);
int
libfsclfs_store_free(libfsclfs_store_t **store,
libfsclfs_error_t **error);
int
libfsclfs_store_signal_abort(libfsclfs_store_t *store,
libfsclfs_error_t **error);
int
libfsclfs_store_open(libfsclfs_store_t *store, const char *filename,
int access_flags, libfsclfs_error_t **error);
int
libfsclfs_store_open_containers(libfsclfs_store_t *store,
libfsclfs_error_t **error);
int
libfsclfs_store_close(libfsclfs_store_t *store,
libfsclfs_error_t **error);
int
libfsclfs_store_get_number_of_containers(libfsclfs_store_t *store,
int *number_of_containers, libfsclfs_error_t **error);
int
libfsclfs_store_get_container(libfsclfs_store_t *store,
int container_index, libfsclfs_container_t **container,
libfsclfs_error_t **error);
int
libfsclfs_store_get_number_of_streams(libfsclfs_store_t *store,
int *number_of_streams, libfsclfs_error_t **error);
int
libfsclfs_store_get_stream(libfsclfs_store_t *store, int stream_index,
libfsclfs_stream_t **stream, libfsclfs_error_t **error);
β¨ available when compiled with wide character string support:
int
libfsclfs_store_open_wide(libfsclfs_store_t *store,
const wchar_t *filename, int access_flags,
libfsclfs_error_t **error);
β¨ available when compiled with libbfio support:
int
libfsclfs_store_open_file_io_handle(libfsclfs_store_t *store,
libbfio_handle_t *file_io_handle, int access_flags,
libfsclfs_error_t **error);
π Container functions
int
libfsclfs_container_free(libfsclfs_container_t **container,
libfsclfs_error_t **error);
int
libfsclfs_container_get_size(libfsclfs_container_t *container,
size64_t *size, libfsclfs_error_t **error);
int
libfsclfs_container_get_utf8_name_size(libfsclfs_container_t *container,
size_t *utf8_string_size, libfsclfs_error_t **error);
int
libfsclfs_container_get_utf8_name(libfsclfs_container_t *container,
uint8_t *utf8_string, size_t utf8_string_size,
libfsclfs_error_t **error);
int
libfsclfs_container_get_utf16_name_size(libfsclfs_container_t *container,
size_t *utf16_string_size, libfsclfs_error_t **error);
int
libfsclfs_container_get_utf16_name(libfsclfs_container_t *container,
uint16_t *utf16_string, size_t utf16_string_size,
libfsclfs_error_t **error);
π Stream functions
int
libfsclfs_stream_free(libfsclfs_stream_t **stream,
libfsclfs_error_t **error);
int
libfsclfs_stream_get_utf8_name_size(libfsclfs_stream_t *stream,
size_t *utf8_string_size, libfsclfs_error_t **error);
int
libfsclfs_stream_get_utf8_name(libfsclfs_stream_t *stream,
uint8_t *utf8_string, size_t utf8_string_size,
libfsclfs_error_t **error);
int
libfsclfs_stream_get_utf16_name_size(libfsclfs_stream_t *stream,
size_t *utf16_string_size, libfsclfs_error_t **error);
int
libfsclfs_stream_get_utf16_name(libfsclfs_stream_t *stream,
uint16_t *utf16_string, size_t utf16_string_size,
libfsclfs_error_t **error);
int
libfsclfs_stream_get_base_lsn(libfsclfs_stream_t *stream,
uint64_t *base_lsn, libfsclfs_error_t **error);
int
libfsclfs_stream_get_last_lsn(libfsclfs_stream_t *stream,
uint64_t *last_lsn, libfsclfs_error_t **error);
int
libfsclfs_stream_get_record_by_lsn(libfsclfs_stream_t *stream,
uint64_t record_lsn, libfsclfs_record_t **record,
libfsclfs_error_t **error);
π Record functions
int
libfsclfs_record_free(libfsclfs_record_t **record,
libfsclfs_error_t **error);
int
libfsclfs_record_get_type(libfsclfs_record_t *record,
uint32_t *record_type, libfsclfs_error_t **error);
int
libfsclfs_record_get_flags(libfsclfs_record_t *record,
uint16_t *record_flags, libfsclfs_error_t **error);
int
libfsclfs_record_get_previous_lsn(libfsclfs_record_t *record,
uint64_t *previous_lsn, libfsclfs_error_t **error);
int
libfsclfs_record_get_undo_next_lsn(libfsclfs_record_t *record,
uint64_t *undo_next_lsn, libfsclfs_error_t **error);
int
libfsclfs_record_get_data(libfsclfs_record_t *record, uint8_t **data,
size_t *data_size, libfsclfs_error_t **error);
π DESCRIPTION π
okay so the main character of this section is literally just one function, and it's libfsclfs_get_version(), and bestie it's exactly what it sounds like π you call it, it hands you back the library version, no cap. it's the "hey what's ur sign" of libyal libraries, fr fr β¨
π«Ά RETURN VALUES π«Ά
lowkey important: most of these functions return NULL or -1 on error, and which one you get totally depends on the return type of the function you called π so if you actually need the exact return value for a specific function, go look it up in "libfsclfs.h" β that header is the source of truth, periodt π
π ENVIRONMENT π
None
(yeah, nothing here, the vibes are minimal π)
π FILES π
None
(also nothing, we stan a low-maintenance library β¨)
π§ NOTES π§
okay so fun fact: libfsclfs can be compiled with wide character support (wchar_t) π¦
to compile libfsclfs with wide character support, use:
./configure --enable-wide-character-type=yes
or define one of these during compilation:
_UNICODE
or:
UNICODE
also!! LIBFSCLFS_WIDE_CHARACTER_TYPE in libfsclfs/features.h can be used to determine if libfsclfs was compiled with wide character support π that's your vibe check for whether the wide-char functions are actually there, iykyk π
π BUGS π
found a bug? any kind? pls pls pls report it on the project issue tracker, bestie, they want to know:
https://github.com/libyal/libfsclfs/issues
πΈ AUTHOR πΈ
these man pages are literally generated from "libfsclfs.h" β iconic, automated, no manual typing required π
π COPYRIGHT π
Copyright (C) 2010-2024, Joachim Metz <joachim.metz@gmail.com>.
okay so this is free software π see the source for copying conditions. and listen β there is NO warranty, not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, like none, zero, nada π so use it responsibly bestie π
β SEE ALSO β
- the
libfsclfs.hinclude file β that's the whole vibe, go read the header π¦
and that's the page, bestie!! π«Ά this was the libfsclfs(3) manual, source/version libfsclfs, dated October 15, 2019 β mwah, slay, go read ur logs π
β¨
π¦ where this page comes from
- opensuse-leap 16.0: libfsclfs-devel 20240430-bp160.1.13 Β· LGPL-3.0-or-later
- opensuse-leap 16.0: libfsclfs-devel 20240430-bp160.1.13 Β· LGPL-3.0-or-later
- opensuse-leap 16.0: libfsclfs-devel 20240430-bp160.1.13 Β· LGPL-3.0-or-later
- opensuse-leap 16.0: libfsclfs-devel 20240430-bp160.1.13 Β· LGPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms