xref: /csrg-svn/usr.bin/pascal/libpc/PCEXIT.c (revision 44647)
140865Sbostic /*-
240865Sbostic  * Copyright (c) 1979 The Regents of the University of California.
340865Sbostic  * All rights reserved.
440865Sbostic  *
540865Sbostic  * %sccs.include.redist.c%
640865Sbostic  */
71671Smckusick 
840865Sbostic #ifndef lint
9*44647Smckusick static char sccsid[] = "@(#)PCEXIT.c	1.3 (Berkeley) 06/29/90";
1040865Sbostic #endif /* not lint */
111671Smckusick 
121671Smckusick #include "h00vars.h"
13*44647Smckusick #include <sys/time.h>
14*44647Smckusick #include <sys/resource.h>
151671Smckusick 
161671Smckusick PCEXIT(code)
171671Smckusick 
181671Smckusick 	int	code;
191671Smckusick {
201671Smckusick 	double l;
21*44647Smckusick 	struct rusage ru;
221671Smckusick 
231671Smckusick 	PCLOSE(GLVL);
241671Smckusick 	PFLUSH();
251671Smckusick 	if (_stcnt > 0) {
26*44647Smckusick 		if (getrusage(RUSAGE_SELF, &ru) < 0)
27*44647Smckusick 			exit(code);
28*44647Smckusick 		l = ru.ru_utime.tv_usec;
29*44647Smckusick 		l /= 1000000;
30*44647Smckusick 		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