libfusn(3)

πŸ“¦ in opensuse-leap 16.0

πŸ’– libfusn(3) β€” the USN Journal library, bestie edition πŸ’–

okay so this is a page from the Library Functions Manual (that's the manual name, girlies, write it down πŸ“) and it's all about libfusn.h β€” the C library that lets you vibe with the Update Sequence Number (USN) Journal format. yes, that USN. the NTFS one. we're going there. πŸ¦‹


✨ NAME ✨

libfusn.h β€” Library to access the Update Sequence Number (USN) Journal format

like, literally the whole point of this header file. it's giving "I contain multitudes and also journal records". πŸ‘‘


🌸 SYNOPSIS 🌸

#include <libfusn.h>

πŸŽ€ Support functions

const char *
libfusn_get_version(void);

πŸŽ€ Error functions

void
libfusn_error_free(libfusn_error_t **error);

int
libfusn_error_fprint(libfusn_error_t *error, FILE *stream);

int
libfusn_error_sprint(libfusn_error_t *error, char *string, size_t size);

int
libfusn_error_backtrace_fprint(libfusn_error_t *error, FILE *stream);

int
libfusn_error_backtrace_sprint(libfusn_error_t *error, char *string,
    size_t size);

πŸŽ€ Record functions

int
libfusn_record_initialize(libfusn_record_t **usn_record,
    libfusn_error_t **error);

int
libfusn_record_free(libfusn_record_t **usn_record,
    libfusn_error_t **error);

int
libfusn_record_copy_from_byte_stream(libfusn_record_t *usn_record,
    const uint8_t *byte_stream, size_t byte_stream_size,
    libfusn_error_t **error);

int
libfusn_record_get_size(libfusn_record_t *usn_record, uint32_t *size,
    libfusn_error_t **error);

int
libfusn_record_get_update_time(libfusn_record_t *record,
    uint64_t *update_time, libfusn_error_t **error);

int
libfusn_record_get_file_reference(libfusn_record_t *record,
    uint64_t *file_reference, libfusn_error_t **error);

int
libfusn_record_get_parent_file_reference(libfusn_record_t *record,
    uint64_t *parent_file_reference, libfusn_error_t **error);

int
libfusn_record_get_update_sequence_number(libfusn_record_t *record,
    uint64_t *update_sequence_number, libfusn_error_t **error);

int
libfusn_record_get_update_reason_flags(libfusn_record_t *record,
    uint32_t *update_reason_flags, libfusn_error_t **error);

int
libfusn_record_get_update_source_flags(libfusn_record_t *record,
    uint32_t *update_source_flags, libfusn_error_t **error);

int
libfusn_record_get_file_attribute_flags(libfusn_record_t *record,
    uint32_t *file_attribute_flags, libfusn_error_t **error);

int
libfusn_record_get_utf8_name_size(libfusn_record_t *record,
    size_t *utf8_string_size, libfusn_error_t **error);

int
libfusn_record_get_utf8_name(libfusn_record_t *record,
    uint8_t *utf8_string, size_t utf8_string_size,
    libfusn_error_t **error);

int
libfusn_record_get_utf16_name_size(libfusn_record_t *record,
    size_t *utf16_string_size, libfusn_error_t **error);

int
libfusn_record_get_utf16_name(libfusn_record_t *record,
    uint16_t *utf16_string, size_t utf16_string_size,
    libfusn_error_t **error);

that's the whole lineup, no cap. every single one is up there, bestie β€” I did not skip a single icon. πŸ’…


πŸ”₯ DESCRIPTION πŸ”₯

okay so the entire prose description here is honestly kind of a jump scare in how short it is, but:

the libfusn_get_version() function is the one you call to retrieve the library version. that's it. that's the description. she's lowkey minimal but we respect her. πŸ’œ

the rest of the functions are all declared up in the synopsis with their exact signatures, so if you need to know what one takes, scroll up and read it character for character. 🌈


πŸ’€ RETURN VALUES πŸ’€

most of the functions return NULL or -1 on error, depending on what the return type even is. so like, it varies. πŸ™ˆ

for the actual return values, go look at libfusn.h itself β€” the header is the source of truth, not me.

🧚 ENVIRONMENT 🧚

None

like... none. zero. no environment variables. she doesn't read your env, she doesn't care about your env, she's above it. ✨


πŸ“ FILES πŸ“

None

no files either. nothing to see, nothing to read, nothing to leak. iconic behaviour, honestly. πŸŽ€


⭐ BUGS ⭐

found a bug? any kind of bug? please report bugs of any kind on the project issue tracker:

https://github.com/libyal/libfusn/issues

fr fr go tell them, they want to know. 🫢


πŸ‘‘ AUTHOR πŸ‘‘

these man pages are generated from libfusn.h. yes, the man page writes itself. main character energy. 😭


Copyright (C) 2011-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.

so like β€” free software, yes, but NO warranty. read that again. not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. do not come for her if it breaks. she warned you. πŸ’€

πŸ¦‹ SEE ALSO πŸ¦‹

  • the libfusn.h include file

that's the see also. one item. the header again. she's self-referential and honestly? slay. 🌸


and that's the whole page, bestie!! πŸŽ‰ this little gem is libfusn, dated September 2, 2019 (a whole era ago, I know 😭), from the libfusn source β€” and the manual section is libfusn(3), so go forth and parse those USN journal records. mwah. πŸ’…πŸŽ€βœ¨