1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
.TH erl_error 3 "erl_interface 3.5.7" "Ericsson AB" "C LIBRARY FUNCTIONS"
.SH NAME
erl_error \- Error Print Routines
.SH DESCRIPTION
.LP
This module contains some error printing routines taken from \fIAdvanced Programming in the UNIX Environment\fR by W\&. Richard Stevens\&.
.LP
These functions are all called in the same manner as \fIprintf()\fR, i\&.e\&. with a string containing format specifiers followed by a list of corresponding arguments\&. All output from these functions is to \fIstderr\fR\&.
.SH EXPORTS
.LP
.B
void erl_err_msg(FormatStr, \&.\&.\&. )
.br
.RS
.TP
Types
const char *FormatStr;
.br
.RE
.RS
.LP
The message provided by the caller is printed\&. This function is simply a wrapper for \fIfprintf()\fR\&.
.RE
.LP
.B
void erl_err_quit(FormatStr, \&.\&.\&. )
.br
.RS
.TP
Types
const char *FormatStr;
.br
.RE
.RS
.LP
Use this function when a fatal error has occurred that is not due to a system call\&. The message provided by the caller is printed and the process terminates with an exit value of 1\&. The function does not return\&.
.RE
.LP
.B
void erl_err_ret(FormatStr, \&.\&.\&. )
.br
.RS
.TP
Types
const char *FormatStr;
.br
.RE
.RS
.LP
Use this function after a failed system call\&. The message provided by the caller is printed followed by a string describing the reason for failure\&.
.RE
.LP
.B
void erl_err_sys(FormatStr, \&.\&.\&. )
.br
.RS
.TP
Types
const char *FormatStr;
.br
.RE
.RS
.LP
Use this function after a failed system call\&. The message provided by the caller is printed followed by a string describing the reason for failure, and the process terminates with an exit value of 1\&. The function does not return\&.
.RE
.SH ERROR REPORTING
.LP
Most functions in erl_interface report failures to the caller by returning some otherwise meaningless value (typically \fINULL\fR or a negative number)\&. As this only tells you that things did not go well, you will have to examine the error code in \fIerl_errno\fR if you want to find out more about the failure\&.
.SH EXPORTS
.LP
.B
volatile int erl_errno
.br
.RS
.LP
\fIerl_errno\fR is initially (at program startup) zero and is then set by many erl_interface functions on failure to a non-zero error code to indicate what kind of error it encountered\&. A successful function call might change \fIerl_errno\fR (by calling some other function that fails), but no function will ever set it to zero\&. This means that you cannot use \fIerl_errno\fR to see \fIif\fR a function call failed\&. Instead, each function reports failure in its own way (usually by returning a negative number or \fINULL\fR), in which case you can examine \fIerl_errno\fR for details\&.
.LP
\fIerl_errno\fR uses the error codes defined in your system\&'s \fI<errno\&.h>\fR\&.
.SS Note:
.LP
Actually, \fIerl_errno\fR is a "modifiable lvalue" (just like ISO C defines \fIerrno\fR to be) rather than a variable\&. This means it might be implemented as a macro (expanding to, e\&.g\&., \fI*_erl_errno()\fR)\&. For reasons of thread- (or task-)safety, this is exactly what we do on most platforms\&.
.RE
|