1libexplain(3)              Library Functions Manual              libexplain(3)
2
3
4

NAME

6       libexplain - Explain errno values returned by libc functions
7

SYNOPSIS

9       cc ... -lexplain;
10
11       #include <libexplain/libexplain.h>
12

DESCRIPTION

14       The libexplain library exists to give explanations of error reported by
15       system calls.  The error message returned by  strerror(3)  tend  to  be
16       quite  cryptic.   By  providing a specific error report for each system
17       call, a more detailed error message is  possible,  usually  identifying
18       and  describing  the  specific cause from amongst the numerous meanings
19       each errno value maps to.
20
21   Race Condition
22       The explanation of the cause of an error is dependent on  the  environ‐
23       ment  of  the  error  to remain unchanged, so that when libexplain gets
24       around to looking for the cause, the cause is still there.  On  a  run‐
25       ning  system,  and particularly a multi‐user system, this is not always
26       possible.
27
28       If an incorrect explanation is provided, it is possible that the  cause
29       is no longer present.
30
31   Compiling
32       Assuming the library header files has been installed into /usr/include,
33       and the library files have  been  installed  into  /usr/lib,  compiling
34       against libexplain requires no special -I options.
35
36       When  linking  your  pograms, add -lexplain to the list of libraries at
37       the end of your link line.
38              cc ... -lexplain
39
40       When you configure your package with GNU Autoconf, you need  the  large
41       file support macro
42              AC_SYS_LARGEFILE
43
44       If  you aren't using GNU Autoconf, you will have to work out the needed
45       large file support requirements yourdelf.
46
47       There is a pkg‐config(1) package for you to use, too:
48              CFLAGS="$CFLAGS `pkg-config  libexplain  --cflags`"  LIBS="$LIBS
49              `pkg-config libexplain --libs`"
50       This can make figuring out the command line requirements much easier.
51
52   Environment Variable
53       The EXPLAIN_OPTIONS environment variable may be used to control some of
54       the content in the messages.  Options  are  separated  by  comma  (“,”)
55       characters.
56
57       There are three ways to set an option:
58
59       1. The form “name=value” may be used explicitly.  The values “true” and
60          “false” are used for boolean options.
61
62       2. An option name alone is interpreted to mean “name=true”.
63
64       3. The form “no‐name” is interpreted to mean “name=false”.
65
66       The following options are available:
67
6