File: erl_error.3

package info (click to toggle)
erlang-manpages 1%3A12.b.3-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 4,188 kB
  • ctags: 2
  • sloc: makefile: 68; perl: 30; sh: 15
file content (84 lines) | stat: -rw-r--r-- 3,065 bytes parent folder | download
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