|
NAMEexplain_read - explain read(2) errorsSYNOPSIS#include <libexplain/read.h>const char *explain_read(int fildes, const void *data, long data_size); const char *explain_errno_read(int errnum, int fildes, const void *data, long data_size); void explain_message_read(char *message, int message_size, int fildes, const void *data, long data_size); void explain_message_errno_read(char *message, int message_size, int errnum, int fildes, const void *data, long data_size); DESCRIPTIONThese functions may be used to obtain an explanation for read(2) errors.explain_readconst char *explain_read(int fildes, const void *data, long data_size);The explain_read function may be used to obtain a human readable explanation of what went wrong in a read(2) system call. The least the message will contain is the value of strerror(errno), but usually it will do much better, and indicate the underlying cause in more detail. The error number will be picked up from the errno global variable. This function is intended to be used in a fashion similar to the following example: ssize_t n = read(fd, data, data_size); if (n < 0) { fprintf(stderr, "%s\n", explain_read(fd, data, data_size)); exit(EXIT_FAILURE); }
Note: This function is not thread safe, because it shares a return buffer across all threads, and many other functions in this library. explain_errno_readconst char *explain_errno_read(int errnum, int fildes, const void *data, long data_size);The explain_errno_read function may be used to obtain a human readable explanation of what went wrong in a read(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. This function is intended to be used in a fashion similar to the following example: ssize_t n = read(fd, data, data_size); if (n < 0) { int err = errno; fprintf(stderr, "%s\n", explain_errno_read(err, fd, data, data_size)); exit(EXIT_FAILURE); }
Note: This function is not thread safe, because it shares a return buffer across all threads, and many other functions in this library. explain_message_readvoid explain_message_read(char *message, int message_size, int fildes, const void *data, long data_size);The explain_message_read function may be used to obtain a human readable explanation of what went wrong in a read(2) system call. The least the message will contain is the value of strerror(errno), but usually it will do much better, and indicate the underlying cause in more detail. The error number will be picked up from the errno global variable. This function is intended to be used in a fashion similar to the following example: ssize_t n = read(fd, data, data_size); if (n < 0) { char message[3000]; explain_message_read(message, sizeof(message), fd, data, data_size)); fprintf(stderr, "%s\n", message); exit(EXIT_FAILURE); }
Note: Given a suitably thread safe buffer, this function is thread safe. explain_message_errno_readvoid explain_message_errno_read(char *message, int message_size, int errnum, int fildes, const void *data, long data_size);The explain_message_errno_read function may be used to obtain a human readable explanation of what went wrong in a read(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. This function is intended to be used in a fashion similar to the following example: ssize_t n = read(fd, data, data_size); if (n < 0) { int err = errno; char message[3000]; explain_message_errno_read(message, sizeof(message), err, fd, data, data_size); fprintf(stderr, "%s\n", message); exit(EXIT_FAILURE); }
Note: Given a suitably thread safe buffer, this function is thread safe. COPYRIGHTlibexplain version 1.3Copyright (C) 2008 Peter Miller AUTHORWritten by Peter Miller <pmiller@opensource.org.au> Visit the GSP FreeBSD Man Page Interface. |