ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/src/saidar/saidar.c
(Generate patch)

Comparing projects/libstatgrab/src/saidar/saidar.c (file contents):
Revision 1.14 by ats, Fri Nov 7 18:25:55 2003 UTC vs.
Revision 1.20 by pajs, Mon Jan 5 14:25:03 2004 UTC

# Line 428 | Line 428 | int main(int argc, char **argv){
428          extern int optind;
429          int c;
430  
431 +        time_t last_update = 0;
432 +
433          WINDOW *window;
434  
435          extern int errno;
434        char ch;
436  
437          int delay=2;
438   #ifdef ALLBSD
# Line 444 | Line 445 | int main(int argc, char **argv){
445                  return 1;
446          }
447   #endif
448 + #ifdef SOLARIS
449 +        if((seteuid(getuid())) != 0){
450 +                fprintf(stderr, "Failed to lose setuid'ness\n");
451 +                return 1;
452 +        }      
453 + #endif
454                  
455 <        while ((c = getopt(argc, argv, "vhd:")) != EOF){
455 >        while ((c = getopt(argc, argv, "vhd:")) != -1){
456                  switch (c){
457                          case 'd':
458                                  delay = atoi(optarg);
# Line 453 | Line 460 | int main(int argc, char **argv){
460                                          fprintf(stderr, "Time must be 1 second or greater\n");
461                                          exit(1);
462                                  }
456                                delay--;
463                                  break;
464                          case 'v':
465                                  version_num(argv[0]);  
# Line 463 | Line 469 | int main(int argc, char **argv){
469                                  usage(argv[0]);
470                                  return 1;
471                                  break;
466                                
472                  }
473          }
474  
# Line 485 | Line 490 | int main(int argc, char **argv){
490          display_headings();
491  
492          for(;;){
493 <                ch = getch();
493 >                time_t now;
494 >                int ch = getch();
495 >
496                  if (ch == 'q'){
497 <                        endwin();
491 <                        return 0;
497 >                        break;
498                  }
499  
500 <                get_stats();
500 >                /* To keep the numbers slightly accurate we do not want them
501 >                 * updating more frequently than once a second.
502 >                 */
503 >                now = time(NULL);
504 >                if ((now - last_update) >= 1) {
505 >                        get_stats();
506 >                }
507 >                last_update = now;
508  
509                  display_data();
497
498                /* To keep the numbers slightly accurate we do not want them updating more
499                 * frequently than once a second.
500                 */
501                sleep(1);
510          }      
511  
512          endwin();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines