Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

statgrab(3) [debian man page]

statgrab(3)						     Library Functions Manual						       statgrab(3)

NAME
statgrab - get system statistics SYNOPSIS
#include <statgrab.h> int sg_init(void); int sg_drop_privileges(void); sg_error sg_get_error(void); const char *sg_get_error_arg(void); intsg_get_error_errno(void); const char *sg_str_error(sg_error code); sg_cpu_stats *sg_get_cpu_stats(void); sg_cpu_stats *sg_get_cpu_stats_diff(void); sg_cpu_percents *sg_get_cpu_percents(void); sg_disk_io_stats *sg_get_disk_io_stats(int *entries); sg_disk_io_stats *sg_get_disk_io_stats_diff(int *entries); sg_fs_stats *sg_get_fs_stats(void); sg_host_info *sg_get_host_info(void); sg_load_stats *sg_get_load_stats(void); sg_mem_stats *sg_get_mem_stats(void); sg_swap_stats *sg_get_swap_stats(void); sg_network_io_stats *sg_get_network_io_stats(int *entries); sg_network_io_stats *sg_get_network_io_stats_diff(int *entries); sg_network_iface_stats *sg_get_network_iface_stats(int *entries); sg_page_stats *sg_get_page_stats(void); sg_page_stats *sg_get_page_stats_diff(void); sg_process_count *sg_get_process_stats(void); sg_user_stats *sg_get_user_stats(void); DESCRIPTION
The statgrab library provides a cross-platform interface to getting system statistics. Each of the function calls returns a structure con- taining statistics. See the manual page for each individual function for more details on usage. sg_init must be the first function you call before you start to use libstatgrab; it performs all the one-time initialisation operations that need setuid/setgid privileges. For instance, on *BSD it opens a descriptor to be able to read kernel structures later on, and on Solaris it reads the device mappings that in some cases are only accessible by root (machines with a /dev/osa). Once this has run, the other libstatgrab functions no longer need elevated privileges. It is therefore a good idea to call sg_drop_privileges, which discards setuid and setgid privileges, immediately after you call sg_init, unless your application has another reason for needing setuid or setgid privileges. sg_init and sg_drop_privileges return 0 on success, and non-zero on failure. There are three functions relating to error reporting in libstatgrab. The first, sg_get_error returns an sg_error code which relates to the last error generated by libstatgrab. This can be converted to a string by calling sg_str_error giving the sg_error code as an argument. An optional argument may be set when the error was generated. This can be accessed by calling sg_get_error_arg; NULL will be returned if no argument has been set. Some errors will also record the value of the system errno variable when the error occurred; this can be retrieved by calling sg_get_error_errno, which will return 0 if no valid errno has been recorded. It is the intended practice that whenever a libstatgrab function is called and subsequently fails that an appropriate error will be set. 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 and Cygwin. SEE ALSO
sg_get_cpu_percents(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_net- work_io_stats(3) sg_get_network_iface_stats(3) sg_get_page_stats(3) sg_get_process_stats(3) sg_get_user_stats(3) WEBSITE
http://www.i-scream.org/libstatgrab/ i-scream $Date: 2005/04/25 11:25:45 $ statgrab(3)

Check Out this Related Man Page

sg_get_network_io_stats(3)				     Library Functions Manual					sg_get_network_io_stats(3)

NAME
sg_get_network_io_stats, sg_get_network_io_stats_diff - get network statistics SYNOPSIS
#include <statgrab.h> sg_network_io_stats *sg_get_network_io_stats(int *entries); sg_network_io_stats *sg_get_network_io_stats_diff(int *entries); DESCRIPTION
Both calls take a pointer to an int, entries, which is filled with the number of network interfaces the machine has. This is needed to know how many sg_network_io_stats structures have been returned. A pointer is returned to the first sg_network_io_stats. sg_get_network_io_stats returns the network traffic stored in the kernel which holds the amount of data transferred since bootup. On some platforms, such as Solaris 7, this value is stored in a 32bit int, so wraps around when it reaches 4GB. Other platforms, such as Solaris 8, hold the value in a 64bit int, which wraps somewhere near 17 million terabytes. sg_get_network_io_stats also returns the number of packets sent and received, and the number of errors that have occured. It also makes the number of collisions available. sg_get_network_io_stats_diff is the same as sg_get_network_io_stats except it will return the difference since the last call. So, for instance a call to sg_get_network_io_stats_diff is made, and called again 5 seconds later. Over that time, 20 bytes of traffic was trans- mitted and 10 bytes received. Tx will store 20, rx will store 10 and systime will store 5. This function copes with wrap arounds by the O/S so should be seemless to use. RETURN VALUES
All network statistics return a pointer to a structure of type sg_network_io_stats. typedef struct{ char *interface_name; long long tx; long long rx; long long ipackets; long long opackets; long long ierrors; long long oerrors; long long collisions; time_t systime; }sg_network_io_stats; interface_name The name known to the operating system. (eg. on linux it might be eth0) tx The number of bytes transmitted. rx The number of bytes received. ipackets The number of packets received. opackets The number of packets transmitted. ierrors The number of receive errors. oerrors The number of transmit errors. collisions The number of collisions. systime The time period over which tx and rx were transferred. BUGS
On the very first call sg_get_network_io_stats_diff will return the same as sg_get_network_io_stats. After the first call it will always return the difference. On operating system that hold only 32bits of data there is a problem if the values wrap twice. For example, on Solaris 7 if 9GB is trans- ferred and the operating system wraps at 4GB, the sg_get_network_io_stats_diff function will return 5GB. SEE ALSO
statgrab(3) WEBSITE
http://www.i-scream.org/libstatgrab/ i-scream $Date: 2005/04/25 11:25:45 $ sg_get_network_io_stats(3)
Man Page