Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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://www.freebsd.org/cgi/man.cgi?query=sg_get_error&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help