DOKK / manpages / debian 10 / explain / explain.1.en
explain(1) General Commands Manual explain(1)

explain - explain system call error messages

explain [ option ... ] function [ argument ... ]

explain --version

The explain command is used to decode an error return read from an strace(1) listing, or silimar. Because this is being deciphered in a different process than the orginal, the results will be less accurate than if the program itself were to use libexplain(3).

The functions understood include:

The accept(2) system call.
The accept4(2) system call.
The access(2) system call.
The acct(2) system call.
The acl_from_text(3) system call.
The acl_get_fd(3) system call.
The acl_get_file(3) system call.
The acl_set_fd(3) system call.
The acl_set_file(3) system call.
The acl_to_text(3) system call.
The adjtime(2) system call.
The adjtimex(2) system call.
The asprintf(3) system call.
The bind(2) system call.
The calloc(3) system call.
The chdir(2) system call.
The chmod(2) system call.
The chown(2) system call.
The chroot(2) system call.
The close(2) system call.
The closedir(3) system call.
The connect(2) system call.
The creat(2) system call.
The dirfd(3) system call.
The dup(2) system call.
The dup2(2) system call.
The endgrent(3) system call.
The eventfd(2) system call.
The execlp(3) system call.
The execv(3) system call.
The execve(2) system call.
The execvp(3) system call.
The fchdir(2) system call.
The fchmod(2) system call.
The fchown(2) system call.
The fchownat(2) system call.
The fclose(3) system call.
The fcntl(2) system call.
The fdopen(3) system call.
The fdopendir(3) system call.
The feof(3) system call.
The ferror(3) system call.
The fflush(3) system call.
The fgetc(3) system call.
The fgetpos(3) system call.
The fgets(3) system call.
The fileno(3) system call.
The flock(2) system call.
The fork(2) system call.
The fpathconf(3) system call.
The fpurge(3) system call.
The fread(3) system call.
The fopen(2) system call. The pathname argument may need to be quoted to insulate white space and punctuation from the shell. The mode argument (a textual equivalent of the open system call's flags argument). See fopen(3) for more information.
The fputc(3) system call.
The fputs(3) system call.
The freopen(3) system call.
The fseek(3) system call.
The fseeko(3) system call.
The fsetpos(3) system call.
The fstat(2) system call.
The fstatat(2) system call.
The fstatfs(2) system call.
The fstatvfs(2) system call.
The fsync(2) system call.
The ftell(3) system call.
The ftello(3) system call.
The ftime(3) system call.
The ftruncate(2) system call.
The futimens(3) system call.
The futimes(3) system call.
The futimesat(2) system call.
The getc(3) system call.
The getchar(3) system call.
The getcwd(2) system call.
The getdomainname(2) system call.
The getgrent(3) system call.
The getgrouplist(3) system call.
The getgroups(2) system call.
The gethostbyname(3) system call.
The gethostid(3) system call.
The gethostname(2) system call.
The getpeername(2) system call.
The getpgid(2) system call.
The getpgrp(2) system call.
The getpriority(2) system call.
The getresgid(2) system call.
The getresuid(2) system call.
The getrlimit(2) system call.
The getrusage(2) system call.
The getsockname(2) system call.
The getsockopt(2) system call.
The gettimeofday(2) system call.
The getw(3) system call.
The iconv(3) system call.
The iconv_close(3) system call.
The iconv_open(3) system call.
The ioctl(2) system call.
The kill(2) system call.
The lchmod(2) system call.
The lchown(2) system call.
The lchownat(2) system call.
The link(2) system call.
The linkat(2) system call.
The listen(2) system call.
The lseek(2) system call.
The lstat(2) system call.
The lutimes(3) system call.
The malloc(3) system call.
The mkdir(2) system call.
The mkdtemp(3) system call.
The mknod(2) system call.
The mkostemp(3) system call.
The mkstemp(3) system call.
The mktemp(3) system call.
The mmap(2) system call.
The mount(2) system call.
The munmap(2) system call.
The nanosleep(2) system call.
The nice(2) system call.
The open(2) system call. The pathname argument may need to be quoted to insulate white space and punctuation from the shell. The flags argument may be numeric or symbolic. The mode argument may be numeric or symbolic.
The openat(2) system call. The flags argument may be numeric or symbolic. The mode argument may be numeric or symbolic.
The opendir(3) system call.
The pathconf(3) system call.
The pclose(3) system call.
The pipe(2) system call.
The pipe2(2) system call.
The poll(2) system call.
The popen(3) system call.
The pread(2) system call.
The ptrace(2) system call.
The putc(3) system call.
The putchar(3) system call.
The putenv(3) system call.
The puts(3) system call.
The putw(3) system call.
The pwrite(2) system call.
The raise(3) system call.
The read(2) system call.
The realloc(3) system call.
The realpath(3) system call.
The rename(2) system call.
The readv(2) system call.
The select(2) system call.
The setbuf(3) system call.
The setbuffer(3) system call.
The setdomainname(2) system call.
The setenv(3) system call.
The setgid(2) system call.
The setgrent(3) system call.
The setgroups(2) system call.
The sethostname(2) system call.
The setlinebuf(3) system call.
The setpgid(2) system call.
The setpgrp(2) system call.
The setpriority(2) system call.
The setregid(2) system call.
The setreuid(2) system call.
The setresgid(2) system call.
The setresuid(2) system call.
The setreuid(2) system call.
The setsid(2) system call.
The setsockopt(2) system call.
The settimeofday(2) system call.
The setuid(2) system call.
The setvbuf(3) system call.
The shmat(2) system call.
The shmctl(2) system call.
The signalfd(2) system call.
The sleep(3) system call.
The socket(2) system call.
The socketpair(2) system call.
The stat(2) system call.
The statfs(2) system call.
The statvfs(2) system call.
The stime(2) system call.
The strcoll(3) system call.
The strdup(3) system call.
The error given will be printed out with all known detail.
The strndup(3) system call.
The strtod(3) system call.
The strtof(3) system call.
The strtol(3) system call.
The strtold(3) system call.
The strtoll(3) system call.
The strtoul(3) system call.
The strtoull(3) system call.
The symlink(2) system call.
The system(3) system call.
The tcdrain(3) system call.
The tcflow(3) system call.
The tcflush(3) system call.
The tcgetattr(3) system call.
The tcsendbreak(3) system call.
The tcsetattr(3) system call.
The telldir(3) system call.
The tempnam(3) system call.
The time(2) system call.
The timerfd_create(2) system call.
The tmpfile(3) system call.
The tmpnam(3) system call.
The truncate(2) system call.
The usleep(3) system call.
The uname(2) system call.
The ungetc(3) system call.
The unlink(2) system call.
The unsetenv(3) system call.
The ustat(2) system call.
The utime(2) system call.
The utimens(2) system call.
The utimensat(2) system call.
The utimes(2) system call.
The vasprintf(3) system call.
The vfork(2) system call.
The wait(2) system call.
The wait3(2) system call.
The wait4(2) system call.
The waitpid(2) system call.
The write(2) system call.
The writev(2) system call.

Do not include the perentheses used to make the call.

The explain command understands the following options:

The exit staus, success or fail, will be printed immediately before the access command terminates.
The value of errno as a number (e.g. 2), or as a symbol (e.g. ENOENT), or as the text of its meaning (e.g. No such file or directory). You will need quotes to insulate spaces and punctuation from the shell.
Print the version of the explain executing.

The explain command exits with status 1 on any error. The explain command only exits with status 0 if there are no errors.

explain version 1.4
Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Peter Miller

Written by Peter Miller <pmiller@opensource.org.au>