allow setting of sigar_strerror
This commit is contained in:
		
							parent
							
								
									4c6a988854
								
							
						
					
					
						commit
						aa4e73c437
					
				@ -156,6 +156,10 @@ char *sigar_os_error_string(sigar_t *sigar, int err);
 | 
			
		||||
 | 
			
		||||
char *sigar_strerror_get(int err, char *errbuf, int buflen);
 | 
			
		||||
 | 
			
		||||
void sigar_strerror_set(sigar_t *sigar, char *msg);
 | 
			
		||||
 | 
			
		||||
void sigar_strerror_printf(sigar_t *sigar, const char *format, ...);
 | 
			
		||||
 | 
			
		||||
int sigar_sys_info_get_uname(sigar_sys_info_t *sysinfo);
 | 
			
		||||
 | 
			
		||||
int sigar_os_sys_info_get(sigar_t *sigar, sigar_sys_info_t *sysinfo);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								src/sigar.c
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								src/sigar.c
									
									
									
									
									
								
							@ -17,6 +17,8 @@
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <errno.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
 | 
			
		||||
#ifndef WIN32
 | 
			
		||||
#include <arpa/inet.h>
 | 
			
		||||
#include <sys/socket.h>
 | 
			
		||||
@ -196,6 +198,10 @@ SIGAR_DECLARE(char *) sigar_strerror(sigar_t *sigar, int err)
 | 
			
		||||
{
 | 
			
		||||
    char *buf;
 | 
			
		||||
 | 
			
		||||
    if (err < 0) {
 | 
			
		||||
        return sigar->errbuf;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (err > SIGAR_OS_START_ERROR) {
 | 
			
		||||
        if ((buf = sigar_os_error_string(sigar, err)) != NULL) {
 | 
			
		||||
            return buf;
 | 
			
		||||
@ -249,7 +255,23 @@ char *sigar_strerror_get(int err, char *errbuf, int buflen)
 | 
			
		||||
    return errbuf;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#include <stdio.h> /* for sprintf */
 | 
			
		||||
void sigar_strerror_set(sigar_t *sigar, char *msg)
 | 
			
		||||
{
 | 
			
		||||
    SIGAR_SSTRCPY(sigar->errbuf, msg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef WIN32
 | 
			
		||||
#define vsnprintf _vsnprintf
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
void sigar_strerror_printf(sigar_t *sigar, const char *format, ...)
 | 
			
		||||
{
 | 
			
		||||
    va_list args;
 | 
			
		||||
 | 
			
		||||
    va_start(args, format);
 | 
			
		||||
    vsnprintf(sigar->errbuf, sizeof(sigar->errbuf), format, args);
 | 
			
		||||
    va_end(args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
SIGAR_DECLARE(int) sigar_uptime_string(sigar_t *sigar, 
 | 
			
		||||
                                       sigar_uptime_t *uptime,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user