]> git.itanic.dy.fi Git - buddywatch/commitdiff
Read delay parameter from the command line
authorTimo Kokkonen <kaapeli@itanic.dy.fi>
Tue, 6 Dec 2011 16:27:42 +0000 (18:27 +0200)
committerTimo Kokkonen <kaapeli@itanic.dy.fi>
Tue, 6 Dec 2011 16:27:42 +0000 (18:27 +0200)
Signed-off-by: Timo Kokkonen <kaapeli@itanic.dy.fi>
buddywatch.c

index 2a207d377684de3f633f84f1b109b5362712f815..df5620de4f357de37284ec76296a8aca50ca2e93 100644 (file)
@@ -2,6 +2,7 @@
 #include <stdlib.h>
 #include <unistd.h>
 #include <ctype.h>
+#include <time.h>
 
 #define MAX_ORDER 11
 
@@ -9,8 +10,18 @@ int main(int argc, char *argv[])
 {
        long long int buddy[MAX_ORDER], bud[MAX_ORDER], tot;
        long int i;
+       double delay = 1;
        FILE *file;
        char str[1024], *s;
+       int ret = 0;
+       struct timespec sleep;
+
+       if (argc > 1)
+               ret = sscanf(argv[1], "%lf", &delay);
+
+       sleep.tv_sec = (time_t)delay;
+       sleep.tv_nsec = ((long)(delay * 1000 * 1000 * 1000) %
+                       (1000l * 1000l * 1000l));
 
        while (1) 
        {
@@ -57,7 +68,8 @@ int main(int argc, char *argv[])
                        tot += buddy[i] * (1 << (i + 2));
                }
                printf("% 5lldM\n", tot >> 10);
-               sleep(1);
+
+               nanosleep(&sleep, NULL);
 
                fclose(file);
        }