Provided by: libstatgrab-dev_0.92.1-1.1_amd64 bug

NAME

       sg_get_error,  sg_get_error_arg,  sg_get_error_errno,  sg_str_error, sg_get_error_details,
       sg_strperror - get last error status

SYNOPSIS

       #include <statgrab.h>

       sg_error sg_get_error (void);

       const char *sg_get_error_arg (void);

       int sg_get_error_errno (void);

       sg_error sg_get_error_details (sg_error_details *err_details);

       const char *sg_str_error (sg_error code);

       char *sg_strperror (char **buf, const sg_error_details * const err_details);

DESCRIPTION

       There are four functions to get information about the last occurred  error:  sg_get_error,
       sg_get_error_arg, sg_get_error_errno and sg_get_error_details. The remaining functions are
       intended to improve the machine-human-interface (e.g.  the error log or  a  message  box):
       sg_str_error  delivers  a human readable error name and sg_strperror prepares a full blown
       error message for printing.

       The error argument (sg_get_error_arg) is stored thread local and is reused every  time  an
       error  occures.  If a later usage is intended, duplicating it is a suitable strategy. Same
       for the error_arg of sg_error_details delivered by sg_get_error_details.

       When someone calls the function sg_get_error_details with a NULL pointer, the  last  error
       is  overridden  with a new one describing that sg_get_error_details is called with invalid
       arguments. Please be careful.

       The function sg_strperror is allowed to be called with or without  (err_details  is  NULL)
       collected  error  details.  In  the latter case, the last occurred error of this thread is
       used to prepare the error message. Be aware, the  the  buffer  pointer  must  be  non-NULL
       (points  to  an existing char * lvalue), but the char * lvalue it points to, must be NULL.
       When invoked correctly, there are only two  possible  error  conditions  let  sg_strperror
       fail: ENOMEM (out of memory) and EINVAL (invalid error code).

       Example

       if( NULL == sg_get_cpu_stats() ) {
           char *buf = NULL;
           if( NULL != sg_strperror( &buf, NULL ) ) {
               fprintf( stderr, "error getting CPU stats: %s\n", buf );
               free(buf);
               exit(255);
           }
           else {
               fprintf( stderr, "error getting CPU stats and error information\n" );
               exit(255);
           }
       }

RETURN VALUES

       The error details contains following information:

       typedef struct sg_error_details {
               sg_error error;
               int errno_value;
               const char *error_arg;
       } sg_error_details;

       error  The statgrab library error code.

       errno_value
              The operating system error code.

       error_arg
              Additional information set when the error was reported.

SEE ALSO

       statgrab(3)

WEBSITE

       ⟨https://libstatgrab.org/⟩