home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume4 / loadav / u_getloads.c < prev   
C/C++ Source or Header  |  1986-11-30  |  876b  |  35 lines

  1. /* ugetloads(ls)
  2.  * fload ld[3];
  3.  *
  4.  * Puts the 1, 5, and 15 minute load averages in the float
  5.  * array passed to it.  This program calls upon uptime(1)
  6.  * which could have different ways of printing ie. with bsd4.2
  7.  * "   9:34pm  up 11 hrs,  3 users,  load average: 0.25, 0.22, 0.24  "
  8.  *                                notice the commas -- ^ --- ^.
  9.  * while bsd4.1 does not print commas.  The BSD41 define will 
  10.  * take care of this if that is your system, it defaults to
  11.  * the 4.2 version.
  12.  */
  13.  
  14. #include <stdio.h>
  15.  
  16. FILE *popen();
  17.  
  18. ugetloads(ld)
  19. float ld[3];
  20. {
  21.     FILE *stream;
  22.  
  23.     if((stream = popen("/usr/ucb/uptime","r")) == NULL)
  24.     return(-1);
  25.  
  26. #ifdef BSD41
  27.     fscanf(stream,"%*[^l] load average: %f %f %f", &ld[0],&ld[1],&ld[2]);
  28. #else
  29.     fscanf(stream,"%*[^l] load average: %f, %f, %f", &ld[0],&ld[1],&ld[2]);
  30. #endif BSD41
  31.     pclose(stream);
  32.     return(NULL);
  33. }
  34.  
  35.