xref: /csrg-svn/usr.bin/pascal/libpc/PCEXIT.c (revision 62092)
140865Sbostic /*-
2*62092Sbostic  * Copyright (c) 1979, 1993
3*62092Sbostic  *	The Regents of the University of California.  All rights reserved.
440865Sbostic  *
540865Sbostic  * %sccs.include.redist.c%
640865Sbostic  */
71671Smckusick 
840865Sbostic #ifndef lint
9*62092Sbostic static char sccsid[] = "@(#)PCEXIT.c	8.1 (Berkeley) 06/06/93";
1040865Sbostic #endif /* not lint */
111671Smckusick 
121671Smckusick #include "h00vars.h"
1344647Smckusick #include <sys/time.h>
1444647Smckusick #include <sys/resource.h>
151671Smckusick 
PCEXIT(code)161671Smckusick PCEXIT(code)
171671Smckusick 
181671Smckusick 	int	code;
191671Smckusick {
201671Smckusick 	double l;
2144647Smckusick 	struct rusage ru;
221671Smckusick 
231671Smckusick 	PCLOSE(GLVL);
241671Smckusick 	PFLUSH();
251671Smckusick 	if (_stcnt > 0) {
2644647Smckusick 		if (getrusage(RUSAGE_SELF, &ru) < 0)
2744647Smckusick 			exit(code);
2844647Smckusick 		l = ru.ru_utime.tv_usec;
2944647Smckusick 		l /= 1000000;
3044647Smckusick 		l += ru.ru_utime.tv_sec;
311671Smckusick 		fprintf(stderr, "\n%1ld %s %04.2f seconds cpu time.\n",
321671Smckusick 				_stcnt, "statements executed in", l);
331671Smckusick 	}
341671Smckusick 	exit(code);
351671Smckusick }
36