1 /************************* toolbox/loging.c ************************************
3 Copyright (c) 1997 A. Krall, R. Grafl, M. Gschwind, M. Probst
5 See file COPYRIGHT for information on usage and disclaimer of warranties
7 Not documented, see loging.h.
9 Authors: Reinhard Grafl EMAIL: cacao@complang.tuwien.ac.at
11 Last Change: 1996/10/03
13 *******************************************************************************/
17 #include <sys/resource.h>
21 /***************************************************************************
23 ***************************************************************************/
25 char logtext[MAXLOGTEXT]; /* Musz mit dem gewuenschten Text vor */
26 /* Aufruf von dolog() beschrieben werden */
34 void log_init(char *fname)
38 logfile = fopen(fname, "w");
45 /*********************** Funktion: dolog ************************************
47 Gibt den in logtext stehenden Text auf die Protokollierungsdatei
48 aus (wenn sie offen ist) und auszerdem auf stdout.
50 **************************************************************************/
55 fprintf (logfile, "%s\n",logtext);
59 printf ("LOG: %s\n",logtext);
64 /********************* Funktion: log_text ********************************/
66 void log_text (char *text)
68 sprintf (logtext, "%s",text);
73 /********************* Funktion: log_cputime ****************************/
84 sprintf (logtext, "Total CPU usage: %d seconds and %d milliseconds",
91 /************************** Funktion: error *******************************
93 Wie dolog(), aber das Programm wird auszerdem sofort terminiert.
95 **************************************************************************/
100 fprintf (logfile, "ERROR: %s\n", logtext);
102 printf ("ERROR: %s\n",logtext);
107 /************************ Funktion: panic (txt) ****************************
109 Wie error(), jedoch wird der auszugebende Text als Argument uebergeben
111 ***************************************************************************/
113 void panic(char *txt)
115 sprintf (logtext, "%s", txt);
120 /********************** Funktion: getcputime ********************************
122 liefert die verbrauchte CPU-Zeit im Mikrosekunden
124 ****************************************************************************/
126 long int getcputime()
131 getrusage (RUSAGE_SELF, &ru);
132 sec = ru.ru_utime.tv_sec + ru.ru_stime.tv_sec;
133 usec = ru.ru_utime.tv_usec + ru.ru_stime.tv_usec;
134 return sec*1000000 + usec;