Register a procedure to be called on any fatal error
void VistaIOSetErrorHandler (VistaIOErrorHandler *handler); typedef void VistaIOErrorHandler (VistaIOStringConst message); void VistaIODefaultError (VistaIOStringConst message);
Specifies the new fatal error handler.
Specifies a null-terminated error message string to be reported.
VistaIOSetErrorHandler registers a procedure, handler, as the fatal error handler. That procedure is called by VistaIOError(3) or by VistaIOSystemError(3) to report any fatal error. When called, it is passed a string, message, containing a textual description of the error.
Only one procedure serves as the fatal error handler at any one time.
Prior to the first call to VistaIOSetErrorHandler, the procedure VistaIODefaultError is the fatal error handler. This procedure will write the error message to the standard error stream, then terminate the program by calling exit(3) with a status value of 1. VistaIODefaultError can be re-established as the fatal error handler at any time by calling VistaIOSetErrorHandler with a NULL argument.
A fatal error handler should never return.
To adopt an error handler that writes messages both to the standard error stream and to a log file, one might do the following:
FILE *log_file; void MyErrorHandler (message) VistaIOStringConst message; { fputs (message, stderr); fputs (message, log_file); exit (1); } int main (...) { ... log_file = fopen ("log", "w"); VistaIOSetErrorHandler (MyErrorHandler); ... }
Art Pope <[email protected]>
Adaption to vistaio: Gert Wollny <[email protected]>