A library that provides a single interface for error handling. Specifically this is intended for cases where some errors are errno errors or other libc errors and there are library-specific, maybe for multiple libraries, errors. The errors are thread-local, support error description, error source string (which function failed), and error code with error code group (e.g. "errno", "addrinfo" or a library name), as well as cause chains, extended details, and if linked together with liberror-backtrace, backtraces. The important functions are: liberror_get_error Get error for the calling thread liberror_set_error Set error for the calling thread liberror_set_error_errno Wrapper for liberror_set_error for errno errors liberror_reset_error Remove error for the calling thread, needed because `liberror_set_error` otherwise stores the error as the cause of the new error liberror_print_error Print the error for the calling thread, include its backtrace if liberror-backtrace is also linked, the errors cause, and optionally remove the error for the calling thread.