diff options
Diffstat (limited to 'benchmarks/forks.c')
-rw-r--r-- | benchmarks/forks.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/benchmarks/forks.c b/benchmarks/forks.c index 2bb98a88..ed8e53e1 100644 --- a/benchmarks/forks.c +++ b/benchmarks/forks.c @@ -1,5 +1,11 @@ /* From 4.4 BSD sys/tests/benchmarks/forks.c. */ +#include <unistd.h> +#include <stdlib.h> +#include <stdio.h> +#include <time.h> +#include <sys/wait.h> + /* * Benchmark program to calculate fork+wait * overhead (approximately). Process @@ -8,15 +14,17 @@ * in calculating exec overhead. */ +int main(argc, argv) + int argc; char *argv[]; { register int nforks, i; char *cp; int pid, child, status, brksize; - int starttime, endtime; + time_t starttime, endtime; - if (argc < 2) { + if (argc < 3) { printf("usage: %s number-of-forks sbrk-size\n", argv[0]); exit(1); } @@ -30,10 +38,10 @@ main(argc, argv) printf("%s: bad size to sbrk\n", argv[2]); exit(3); } - + time (&starttime); cp = (char *)sbrk(brksize); - if ((int)cp == -1) { + if (cp == (void *)-1) { perror("sbrk"); exit(4); } @@ -51,6 +59,6 @@ main(argc, argv) ; } time (&endtime); - printf ("Time: %d seconds.\n", endtime - starttime); + printf ("Time: %d seconds.\n", (int) (endtime - starttime)); exit(0); } |