sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #42081
Re: Læse en process's CPU usage
Kim Nielsen wrote:
>
oki .. så tager vi noget c kode:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <time.h>
void getvalue(char *file, int *cur, int *max) {
char buf[20];
FILE *fp = fopen(file, "r");
if (!fp) return;
char *t = fgets(buf, sizeof(buf), fp);
if (!t) return;
char delim[] =" ";
if (t) {
char *tmp = strtok(t, delim);
tmp = strtok(0, delim);
if (tmp) *cur = atoi(tmp);
tmp = strtok(0, delim);
if (tmp) *max = atoi(tmp);
}
fclose(fp);
}
int main(int argc, char** argv) {
int cur, max, deltacur=0, deltamax=0;
time_t oldtid, tid = 0;
while(1) {
oldtid = tid;
getvalue("/proc/6373/cpu", &cur, &max);
tid = max;
deltamax = tid-oldtid;
if (deltamax > 80) {
printf("Warning: den går amok!");
}
printf("Delta %d\n", deltamax);
sleep(2);
}
}
det er noget slam og lavet på kort tid men det virker .. :) så kan du
selv lave videre på det ..
/Kim
References