/* Created by Anjuta version 1.2.4a */ /* This file will not be overwritten */ #include #include #include void leer_archivo(char *szName){ GIOChannel *io; gchar *buffer; float cpu1, cpu2, cpu3; long lcpu1, lcpu2, lcpu3; gsize len; int argc = 2; if (argc != 2) { g_printerr ("Uso: giochannel archivo\n"); //return -1; } io = g_io_channel_new_file (szName, "r", NULL); if (io != NULL) { while (g_io_channel_read_line (io, &buffer, &len, NULL, NULL) == G_IO_STATUS_NORMAL) { sscanf (buffer, "%f %f %f", &cpu1, &cpu2, &cpu3); g_print ("La linea es: %s\n", buffer); /* --- Want range of 1-100+ instead of .01 to 1.0+ --- */ lcpu1 = cpu1 * 100; lcpu2 = cpu2 * 100; lcpu3 = cpu3 * 100; g_print ("CPU1 es: %f \n", cpu1); g_print ("CPU2 es: %f \n", cpu2); g_print ("CPU3 es: %f \n", cpu3); g_print ("\n"); g_free (buffer); } g_io_channel_close (io); } else { g_printerr ("No se pudo abrir el archivo %s\n", szName); } } void GetCPUInfo () { static char *szFile = "/proc/loadavg"; char szBuffer[88]; FILE *fp; float cpu1, cpu2, cpu3; long lcpu1, lcpu2, lcpu3; /* --- Open the file with cpu info --- */ fp = fopen (szFile, "r"); /* --- If it's opened... --- */ if (fp) { fgets (szBuffer, sizeof (szBuffer), fp); /* --- Get CPU utilization numbers --- */ sscanf (szBuffer, "%f %f %f", &cpu1, &cpu2, &cpu3); g_print ("La linea es %s \n",szBuffer); g_print ("CPU1 es: %f \n",cpu1); g_print ("CPU2 es: %f \n",cpu2); g_print ("CPU3 es: %f \n",cpu3); /* --- Want range of 1-100+ instead of .01 to 1.0+ --- */ lcpu1 = cpu1 * 100; lcpu2 = cpu2 * 100; lcpu3 = cpu3 * 100; } } int main(int argc, char *argv[]) { FILE *fp; void filecopy(FILE *,FILE *); //void GetCPUInfo (); gtk_init(&argc, &argv); //GetCPUInfo (); leer_archivo("/proc/loadavg"); if(argc == 1) filecopy(stdin,stdout); else while(--argc>0) if((fp = fopen(*++argv, "r"))==NULL){ printf("cat: no se puede abrir %s\n", *argv); return 1; }else{ filecopy(fp, stdout); fclose(fp); } gtk_main_quit(); return 0; } void filecopy(FILE *ifp, FILE *ofp) { int c; while ((c=getc(ifp)) != EOF) putc(c, ofp); }