FreeBSD Manual Pages
sg_get_error(3) sg_get_error(3) 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 er- ror: sg_get_error, sg_get_error_arg, sg_get_error_errno and sg_get_er- ror_details. The remaining functions are intended to improve the ma- chine-human-interface (e.g. the error log or a message box): sg_str_error delivers a human readable error name and sg_strperror pre- pares 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, du- plicating it is a suitable strategy. Same for the error_arg of sg_er- ror_details delivered by sg_get_error_details. When someone calls the function sg_get_error_details with a NULL point- er, the last error is overridden with a new one describing that sg_get_error_details is called with invalid arguments. Please be care- ful. 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 mes- sage. 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 condi- tions 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/> libstatgrab 2019-03-08 sg_get_error(3)
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | WEBSITE
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sg_strperror&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>
