GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  SG_FREE_NETWORK_IFACE_STATS (3)

NAME

sg_get_network_iface_stats, sg_get_network_iface_stats_r, sg_free_network_iface_stats, sg_network_iface_compare_name - get network interface statistics

CONTENTS

Synopsis
Description
Bugs
Website

SYNOPSIS

#include <statgrab.h>

sg_network_iface_stats *sg_get_network_iface_stats \kx (size_t *entries);

sg_network_iface_stats *sg_get_network_iface_stats_r \kx (size_t *entries);

sg_error sg_free_network_iface_stats \kx (sg_network_iface_stats *data);

int sg_network_iface_compare_name \kx (const void *va, const void *vb);

DESCRIPTION

The functions sg_get_network_iface_stats() and sg_get_network_iface_stats_r() return statistics about the network interfaces in the machine. Specifically, they return the speed of the interface, the duplex state, and whether it is currently up. Both functions take an optional entries parameter, which points (when given) to a size_t to take the number of returned vector entries.

API Shortcut

function returns data owner
sg_get_network_iface_stats sg_network_iface_stats * libstatgrab (thread local)
sg_get_network_iface_stats_r sg_network_iface_stats * caller

The sg_network_iface_stats vectors received from sg_get_network_iface_stats_r() must be freed using sg_free_network_iface_stats() when not needed any more. The caller is responsible for doing it.

Additionally a support function for qsort(3) in available: sg_network_iface_compare_name().

Sort Example

size_t entries; sg_network_iface_stats *network_iface_stats = NULL; while( NULL != ( network_iface_stats = sg_get_network_iface_stats(&entries) ) ) { /* order entries alphabetically using the mountpoint */ qsort( network_iface_stats, entries, sizeof(network_iface_stats[0]), &sg_network_iface_compare_name ); show_network_iface_stats( network_iface_stats ); }

RETURN VALUES

The sg_get_network_iface_stats returns a pointer to a structure of type sg_network_iface_stats.

typedef enum{ SG_IFACE_DUPLEX_FULL, SG_IFACE_DUPLEX_HALF, SG_IFACE_DUPLEX_UNKNOWN }sg_iface_duplex;

Note: The SG_IFACE_DUPLEX_UNKNOWN value could mean that duplex hasn’t been negotiated yet.

typedef struct { char *interface_name; int speed; sg_iface_duplex duplex; int up; time_t systime; } sg_network_iface_stats;

interface_name
  The name known to the operating system. (eg. on linux it might be eth0)
speed
  The speed of the interface, in megabits/sec.
duplex
  The duplex state the interface is in. See sg_iface_duplex for permitted values.
up
  Whether the interface is up.
systime
  The timestamp when the above stats where collected in seconds since epoch

BUGS

Getting specific details may require elevated privileges, eg. on Linux the interface speed isn’t visible to non-privileged processes.

The compare functions exist rather for backward compatibility than for functionality enhancements. Limited flexibility (e.g. reverse order) and lack of optimising opportunities for the compiler leads to the recommendation to implement the required compare routines locally.

SEE ALSO

statgrab(3)

WEBSITE

\(lahttp://www.i-scream.org/libstatgrab/\(ra
Search for    or go to Top of page |  Section 3 |  Main Index


i-scream SG_GET_NETWORK_IFACE_STATS (3) 2013-06-07

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.