1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
--- /orig-cpusage.c 2005-08-16 15:37:25.000000000 +0300
+++ /cpusage.c 2006-03-17 22:27:09.000000000 +0200
@@ -168,6 +168,7 @@
int main(int argc, char** argv) {
int i,c,limit;
+ int single; /* run just one's and exit */
int avg; /* is avg measurement allready running */
int avg_run; /* did we allready had an avg measurement */
static long cp_time1[CPUSTATES];
@@ -184,15 +185,21 @@
long total;
limit = LIMIT;
output = 0; /* human readable */
+ single = 1; /*run continuesly */
/* reading commandline options */
while (1) {
- c = getopt(argc, argv, "aohl:");
+ c = getopt(argc, argv, "saohl:");
- if (c == -1)
+ if (c == -1){
break;
+ }
switch(c){
+ case 's':
+ /*run once and exit */
+ single = 0;
+ break;
/* use avg from begin to end -> same as "-l 100" */
case 'a':
limit = 100;
@@ -278,6 +285,10 @@
print_perc(cpu_perc, "");
+ if (!single ) {
+ breakloop=1;
+ }
+
if (breakloop) {
if (avg) {
avg = 0;
@@ -292,7 +303,8 @@
if (sigaction(SIGINT, &sigold, &signew) < 0 ){
fprintf(stderr, "Could not restore signal handler -> exiting");
}
-
+
+ if (single != 0) {
printf("---Summary----\n");
print_perc(cpu_min, "Min");
@@ -301,6 +313,7 @@
perc(CPUSTATES, cp_avg_start, cp_avg_stop, cp_diff);
print_perc(cpu_perc, "Avg");
+ }
return 0;
}
|