Provided by: libstatgrab-dev_0.17-0ubuntu1_amd64 bug


       sg_get_cpu_stats, sg_get_cpu_stats_diff, sg_get_cpu_percents - get cpu usage


       #include <statgrab.h>

       sg_cpu_percents *sg_get_cpu_percents(void);

       sg_cpu_stats *sg_get_cpu_stats(void);

       sg_cpu_stats *sg_get_cpu_stats_diff(void);


       sg_get_cpu_stats()  and  sg_get_cpu_stats_diff()  both  return  static  pointers  of  type
       sg_cpu_stats.  sg_get_cpu_stats() returns the total amount of "ticks" the operating system
       has  spent in each of the different states. sg_get_cpu_stats_diff() returns the difference
       in  "ticks"  for  each  of  the  states  since  last   time   sg_get_cpu_stats_diff()   or
       sg_get_cpu_stats()  was  called. If it has never been called, it will return the result of

       The value stored (the "ticks") will vary between operating systems.  For  example  Solaris
       has  a  total  of  100  per  second,  while  Linux has substantially more. Also, different
       operating systems store different information - you won't find nice  cpu  on  Solaris  for

       Because  of this, you will ideally always want to work on a scale against the total, or in

       sg_get_cpu_percents() returns a pointer to a static sg_cpu_percents.  The  function  calls
       sg_get_cpu_stats_diff()  and  changes  the  values  into percentages. If it has never been
       called before (and nor has sg_get_cpu_stats() or  sg_get_cpu_stats_diff()),  the  returned
       percentages  will  be  the  systems total ever since its uptime. (Unless the counters have


       There are two structures returned by the CPU statistics functions.

       typedef struct{
               long long user;
               long long kernel;
               long long idle;
               long long iowait;
               long long swap;
               long long nice;
               long long total;
               time_t systime;

       typedef struct{
               float user;
               float kernel;
               float idle;
               float iowait;
               float swap;
               float nice;
               time_t time_taken;

       user  kernel  idle  iowait  swap  nice
              The different CPU states.

       systime  time_taken
              The time taken in seconds since the last call of the function, or the system time.