Admin/bash_process/bash_process.c
changeset 62568 3541bc1e97d2
parent 62567 cb4e6ca06505
child 62575 590df5f4e531
equal deleted inserted replaced
62567:cb4e6ca06505 62568:3541bc1e97d2
    18   fprintf(stderr, "%s\n", msg);
    18   fprintf(stderr, "%s\n", msg);
    19   fflush(stderr);
    19   fflush(stderr);
    20   exit(2);
    20   exit(2);
    21 }
    21 }
    22 
    22 
       
    23 static time_t now()
       
    24 {
       
    25   struct timeval tv;
       
    26   if (gettimeofday(&tv, NULL) == 0) {
       
    27     return tv.tv_sec * 1000 + tv.tv_usec / 1000;
       
    28   }
       
    29   else {
       
    30     return time(NULL) * 1000;
       
    31   }
       
    32 }
       
    33 
    23 
    34 
    24 int main(int argc, char *argv[])
    35 int main(int argc, char *argv[])
    25 {
    36 {
    26   /* args */
    37   /* args */
    27 
    38 
    34   char *timing_name = argv[2];
    45   char *timing_name = argv[2];
    35 
    46 
    36 
    47 
    37   /* potential fork */
    48   /* potential fork */
    38 
    49 
    39   time_t time_start = time(NULL);
    50   time_t time_start = now();
    40 
    51 
    41   if (strlen(timing_name) > 0 || setsid() == -1) {
    52   if (strlen(timing_name) > 0 || setsid() == -1) {
    42     pid_t pid = fork();
    53     pid_t pid = fork();
    43 
    54 
    44     if (pid == -1) fail("Cannot set session id (failed to fork)");
    55     if (pid == -1) fail("Cannot set session id (failed to fork)");
    50       }
    61       }
    51 
    62 
    52       /* report timing */
    63       /* report timing */
    53 
    64 
    54       if (strlen(timing_name) > 0) {
    65       if (strlen(timing_name) > 0) {
    55         long long timing_elapsed = (time(NULL) - time_start) * 1000;
    66         long long timing_elapsed = now() - time_start;
    56 
    67 
    57         struct rusage ru;
    68         struct rusage ru;
    58         getrusage(RUSAGE_CHILDREN, &ru);
    69         getrusage(RUSAGE_CHILDREN, &ru);
    59 
    70 
    60         long long timing_cpu =
    71         long long timing_cpu =