1: #ifndef lint
   2: static  char *sccsid = "@(#)time.c	4.5 (Berkeley) 7/1/83";
   3: #endif
   4: 
   5: /*
   6:  * time
   7:  */
   8: #include <stdio.h>
   9: #include <signal.h>
  10: #include <sys/types.h>
  11: #include <sys/time.h>
  12: #include <sys/resource.h>
  13: 
  14: main(argc, argv)
  15:     int argc;
  16:     char **argv;
  17: {
  18:     int status;
  19:     register int p;
  20:     struct timeval before, after;
  21:     struct rusage ru;
  22: 
  23:     if (argc<=1)
  24:         exit(0);
  25:     gettimeofday(&before, 0);
  26:     p = fork();
  27:     if (p < 0) {
  28:         perror("time");
  29:         exit(1);
  30:     }
  31:     if (p == 0) {
  32:         execvp(argv[1], &argv[1]);
  33:         perror(argv[1]);
  34:         exit(1);
  35:     }
  36:     signal(SIGINT, SIG_IGN);
  37:     signal(SIGQUIT, SIG_IGN);
  38:     while (wait3(&status, 0, &ru) != p)
  39:         ;
  40:     gettimeofday(&after, 0);
  41:     if ((status&0377) != 0)
  42:         fprintf(stderr, "Command terminated abnormally.\n");
  43:     after.tv_sec -= before.tv_sec;
  44:     after.tv_usec -= before.tv_usec;
  45:     if (after.tv_usec < 0)
  46:         after.tv_sec--, after.tv_usec += 1000000;
  47:     printt("real", &after);
  48:     printt("user", &ru.ru_utime);
  49:     printt("sys ", &ru.ru_stime);
  50:     fprintf(stderr, "\n");
  51:     exit (status>>8);
  52: }
  53: 
  54: printt(s, tv)
  55:     char *s;
  56:     struct timeval *tv;
  57: {
  58: 
  59:     fprintf(stderr, "%9ld.%01ld %s ", tv->tv_sec, tv->tv_usec/100000, s);
  60: }

Defined functions

main defined in line 14; never used
printt defined in line 54; used 3 times

Defined variables

sccsid defined in line 2; never used
Last modified: 1987-03-13
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1171
Valid CSS Valid XHTML 1.0 Strict