NAME
statgrab, libstatgrab - get system statistics
SYNOPSIS
FC#include <statgrab.h>F[0]
FCsg_error sg_initF[0] FC(int ignore_init_errors);F[0]
FCsg_error sg_shutdownF[0] FC(void);F[0]
FCsg_error sg_drop_privilegesF[0] FC(void);F[0]
FCsg_error sg_get_errorF[0] FC(void);F[0]
FCconst char *sg_get_error_argF[0] FC(void);F[0]
FCint sg_get_error_errnoF[0] FC(void);F[0]
FCconst char *sg_str_errorF[0] FC(sg_error code);F[0]
FCsg_error sg_get_error_detailsF[0] FC(sg_error_details *err_details);F[0]
FCchar *sg_strperrorF[0] FC(char **buf, const sg_error_details * const err_details);F[0]
FCsize_t sg_get_nelementsF[0] FC(const void *data);F[0]
FCsg_error sg_free_stats_bufF[0] FC(void *data);F[0]
FCsg_error sg_lock_mutexF[0] FC(const char *mutex_name);F[0]
FCsg_error sg_unlock_mutexF[0] FC(const char *mutex_name);F[0]
FCsg_cpu_percents *sg_get_cpu_percentsF[0] FC(void);F[0]
FCsg_cpu_percents *sg_get_cpu_percents_ofF[0] FC(sg_cpu_percent_source cps);F[0]
FCsg_cpu_percents *sg_get_cpu_percents_rF[0] FC(const sg_cpu_stats *whereof);F[0]
FCvoid sg_free_cpu_percentsF[0] FC(sg_cpu_percents *data);F[0]
FCsg_cpu_stats *sg_get_cpu_statsF[0] FC(void);F[0]
FCsg_cpu_stats *sg_get_cpu_stats_diffF[0] FC(void);F[0]
FCsg_cpu_stats *sg_get_cpu_stats_rF[0] FC(void);F[0]
FCsg_cpu_stats *sg_get_cpu_stats_diff_betweenF[0] FC(const sg_cpu_stats *cpu_now, const sg_cpu_stats *cpu_last);F[0]
FCsg_error sg_free_cpu_statsF[0] FC(sg_cpu_stats *data);F[0]
FCsg_disk_io_stats *sg_get_disk_io_statsF[0] FC(size_t *entries);F[0]
FCsg_disk_io_stats *sg_get_disk_io_stats_rF[0] FC(size_t *entries);F[0]
FCsg_disk_io_stats *sg_get_disk_io_stats_diffF[0] FC(size_t *entries);F[0]
FCsg_disk_io_stats *sg_get_disk_io_stats_diff_betweenF[0] FC(const sg_disk_io_stats *cur, const sg_disk_io_stats *last, size_t *entries);F[0]
FCsg_error sg_free_disk_io_statsF[0] FC(sg_disk_io_stats *data);F[0]
FCsg_fs_stats *sg_get_fs_statsF[0] FC(size_t *entries);F[0]
FCsg_fs_stats *sg_get_fs_stats_rF[0] FC(size_t *entries);F[0]
FCsg_error sg_free_fs_statsF[0] FC(sg_fs_stats *data);F[0]
FCconst char **sg_get_valid_filesystemsF[0] FC(size_t *entries);F[0]
FCsg_error sg_set_valid_filesystemsF[0] FC(const char *valid_fs[]);F[0]
FCsg_host_info *sg_get_host_infoF[0] FC(void);F[0]
FCsg_host_info *sg_get_host_info_rF[0] FC(void);F[0]
FCsg_error sg_free_host_infoF[0] FC(sg_host_info *data);F[0]
FCsg_load_stats *sg_get_load_statsF[0] FC(void);F[0]
FCsg_load_stats *sg_get_load_statsF[0] FC(void);F[0]
FCsg_error sg_free_load_statsF[0] FC(sg_load_stats *data);F[0]
FCsg_mem_stats *sg_get_mem_statsF[0] FC(void);F[0]
FCsg_mem_stats *sg_get_mem_stats_rF[0] FC(void);F[0]
FCsg_error sg_free_mem_statsF[0] FC(sg_mem_stats *data);F[0]
FCsg_swap_stats *sg_get_swap_statsF[0] FC(void);F[0]
FCsg_swap_stats *sg_get_swap_stats_rF[0] FC(void);F[0]
FCsg_error sg_free_swap_statsF[0] FC(sg_swap_stats *data);F[0]
FCsg_network_iface_stats *sg_get_network_iface_statsF[0] FC(size_t *entries);F[0]
FCsg_network_iface_stats *sg_get_network_iface_stats_rF[0] FC(size_t *entries);F[0]
FCsg_error sg_free_network_iface_statsF[0] FC(sg_network_iface_stats *data);F[0]
FCsg_network_io_stats *sg_get_network_io_statsF[0] FC(size_t *entries);F[0]
FCsg_network_io_stats *sg_get_network_io_stats_rF[0] FC(size_t *entries);F[0]
FCsg_network_io_stats *sg_get_network_io_stats_diffF[0] FC(size_t *entries);F[0]
FCsg_network_io_stats *sg_get_network_io_stats_diff_betweenF[0] FC(const sg_network_io_stats *cur, const sg_network_io_stats *last, size_t *entries);F[0]
FCsg_error sg_free_network_io_statsF[0] FC(sg_network_iface_stats *data);F[0]
FCsg_page_stats *sg_get_page_statsF[0] FC(void);F[0]
FCsg_page_stats *sg_get_page_stats_rF[0] FC(void);F[0]
FCsg_page_stats *sg_get_page_stats_diffF[0] FC(void);F[0]
FCsg_page_stats *sg_get_page_stats_diff_betweenF[0] FC(const sg_page_stats *cur, const sg_page_stats *last);F[0]
FCsg_error sg_free_page_statsF[0] FC(sg_page_stats *data);F[0]
FCsg_process_stats *sg_get_process_statsF[0] FC(size_t *entries);F[0]
FCsg_process_stats *sg_get_process_stats_rF[0] FC(size_t *entries);F[0]
FCsg_error sg_free_process_statsF[0] FC(sg_process_stats *data);F[0]
FCsg_process_count *sg_get_process_countF[0] FC(void);F[0]
FCsg_process_count *sg_get_process_count_ofF[0] FC(sg_process_count_source pcs);F[0]
FCsg_process_count *sg_get_process_count_rF[0] FC(sg_process_stats const *whereof);F[0]
FCsg_error sg_free_process_countF[0] FC(sg_process_count *data);F[0]
FCsg_user_stats *sg_get_user_statsF[0] FC(size_t *entries);F[0]
FCsg_user_stats *sg_get_user_stats_rF[0] FC(size_t *entries);F[0]
FCsg_error sg_free_user_statsF[0] FC(sg_user_stats *data);F[0]
DESCRIPTION
The statgrab library provides a cross-platform interface to get several system statistics. System statistics aren't standardised, so the statgrab library tries to choose the most important values over all supported operating systems. This implies that some values might not be available on every OS while some specific values are missing when there are no counterparts on any other OS.
The libstatgrab is organised in components, each for interrelated statistics.
| component | statistics |
| cpu | FCsg_cpu_statsF[0], FCsg_cpu_percentsF[0] |
| disk | FCsg_disk_io_statsF[0], FCsg_fs_statsF[0] |
| load | FCsg_load_statsF[0] |
| mem | FCsg_mem_statsF[0] |
| network | FCsg_network_io_statsF[0], FCsg_network_iface_statsF[0] |
| os | FCsg_host_infoF[0] |
| page | FCsg_page_statsF[0] |
| process | FCsg_process_statsF[0], FCsg_process_countF[0] |
| swap | FCsg_swap_statsF[0] |
| user | FCsg_user_statsF[0] |
The library was originally written to support the i-scream central monitoring system, but has since become a standalone package. It has been ported to work on Linux, NetBSD, FreeBSD, OpenBSD, DragonFly BSD, Solaris, HP-UX, AIX and Cygwin.
SEE ALSO
sg_intro(3) sg_get_cpu_stats(3) sg_get_disk_io_stats(3) sg_get_fs_stats(3) sg_get_host_info(3) sg_get_load_stats(3) sg_get_mem_stats(3) sg_get_network_io_stats(3) sg_get_network_iface_stats(3) sg_get_page_stats(3) sg_get_process_stats(3) sg_get_swap_stats(3) sg_get_user_stats(3) sg_get_error(3) sg_internal-intro(3)
WEBSITE
⟨https://libstatgrab.org/⟩