/***********************************************************
 * getload2                                                *
 * a simple load programm                                  *
 * Verteilte Systeme II Kapitel 10                         *
 ***********************************************************
 * 1998 by Frank Kargl (frank.kargl@informatik.uni-ulm.de) *
 ***********************************************************
 * Usage: getload                                          *
 ***********************************************************/

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define TMPFILE "/tmp/uptime"
#define UPTIMECMD "/bin/uptime > " TMPFILE

int main(int argc, char** argv) {
    
    FILE* file;
    int ret;
    char buffer[1024];
    double load1, load2, load3;
    
    ret = system(UPTIMECMD);
    if (ret == -1) {
	perror("system() Error");
	exit(1);
    }
    
    file = fopen(TMPFILE, "r");
    if (file == NULL) {
	perror("fopen() error");
	exit(1);
    }
    fgets(buffer, sizeof(buffer), file);
    ret = sscanf(&buffer[(strlen(buffer)-17)],
	    "%lf, %lf, %lf", &load1, &load2, &load3);
    if (ret != 3) {
	fprintf(stderr, "Format error\n");
	exit(1);
    }
    
    printf("[%4.2f, %4.2f, %4.2f]\n", load1, load2, load3);
    
    return 0;
    
}
