libexplain  1.4.D001
Functions | Variables
libexplain/buffer/errno/fcntl.c File Reference
#include <libexplain/ac/errno.h>
#include <libexplain/ac/fcntl.h>
#include <libexplain/ac/unistd.h>
#include <libexplain/buffer/check_fildes_range.h>
#include <libexplain/buffer/ebadf.h>
#include <libexplain/buffer/efault.h>
#include <libexplain/buffer/eintr.h>
#include <libexplain/buffer/einval.h>
#include <libexplain/buffer/emfile.h>
#include <libexplain/buffer/errno/fcntl.h>
#include <libexplain/buffer/errno/generic.h>
#include <libexplain/buffer/fildes_to_pathname.h>
#include <libexplain/buffer/flock.h>
#include <libexplain/buffer/is_the_null_pointer.h>
#include <libexplain/buffer/open_flags.h>
#include <libexplain/buffer/pid_t_star.h>
#include <libexplain/buffer/pointer.h>
#include <libexplain/buffer/signal.h>
#include <libexplain/explanation.h>
#include <libexplain/fcntl.h>
#include <libexplain/is_efault.h>
#include <libexplain/parse_bits.h>
#include <libexplain/sizeof.h>
#include <libexplain/string_buffer.h>

Go to the source code of this file.

Functions

int explain_fcntl_command_parse_or_die (const char *text, const char *caption)
static void explain_buffer_errno_fcntl_system_call (explain_string_buffer_t *sb, int errnum, int fildes, int command, long data)
static void explain_buffer_errno_fcntl_explanation (explain_string_buffer_t *sb, int errnum, int fildes, int command, long data)
void explain_buffer_errno_fcntl (explain_string_buffer_t *sb, int errnum, int fildes, int command, long data)

Variables

static const
explain_parse_bits_table_t 
table []

Function Documentation

void explain_buffer_errno_fcntl ( struct explain_string_buffer_t sb,
int  errnum,
int  fildes,
int  command,
long  arg 
)

The explain_buffer_errno_fcntl function is used to obtain an explanation of an error returned by the fcntl(2) system call. The least the message will contain is the value of strerror(errnum), but usually it will do much better, and indicate the underlying cause in more detail.

Parameters:
sbThe string buffer in which the message is being constructed. If a safe buffer is specified, this function is thread safe.
errnumThe error value to be decoded, usually obtain from the errno global variable just before this function is called. This is necessary if you need to call any code between the system call to be explained and this function, because many libc functions will alter the value of errno.
fildesThe original fildes, exactly has passed to the fcntl(2) system call.
commandThe original command, exactly has passed to the fcntl(2) system call.
argThe original arg, exactly has passed to the fcntl(2) system call (or zero if the original call didn't need a mode argument, or cast to long if it was a pointer).

Definition at line 425 of file fcntl.c.

static void explain_buffer_errno_fcntl_explanation ( explain_string_buffer_t sb,
int  errnum,
int  fildes,
int  command,
long  data 
) [static]

Definition at line 198 of file fcntl.c.

static void explain_buffer_errno_fcntl_system_call ( explain_string_buffer_t sb,
int  errnum,
int  fildes,
int  command,
long  data 
) [static]

Definition at line 98 of file fcntl.c.

int explain_fcntl_command_parse_or_die ( const char *  text,
const char *  captn 
)

The explain_fcntl_command_parse function may be used to parse a text representation of a fcntl command argument, and return a numeric value. Prints error message and exits if string cannot be parsed.

Parameters:
textThe text to be parsed.
captnAdditional caption to be added to error message, if needed.
Returns:
integer value of command

Definition at line 91 of file fcntl.c.


Variable Documentation

Definition at line 47 of file fcntl.c.