aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man3/err.3
blob: 3d3974ec12f72e54b0c446ededb8d555595c72a8 (plain) (blame)
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
.\" Copyright (c) 1993
.\"	The Regents of the University of California.  All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by the University of
.\"	California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"	From: @(#)err.3	8.1 (Berkeley) 6/9/93
.\"	%Id: err.3,v 1.9 1998/09/12 21:02:22 wollman Exp %
.\"
.\" $FreeBSD$
.Dd April 13, 1995
.Dt ERR 3
.Os BSD 4
.Sh 名称
.Nm err ,
.Nm verr ,
.Nm errc ,
.Nm verrc ,
.Nm errx ,
.Nm verrx ,
.Nm warn ,
.Nm vwarn ,
.Nm warnc ,
.Nm vwarnc ,
.Nm warnx ,
.Nm vwarnx ,
.Nm err_set_file ,
.Nm err_set_exit
.Nd フォーマットされたエラーメッセージ
.Sh 書式
.Fd #include <err.h>
.Ft void
.Fn err "int eval" "const char *fmt" "..."
.Ft void
.Fn errc "int eval" "int code" "const char *fmt" "..."
.Ft void
.Fn errx "int eval" "const char *fmt" "..."
.Ft void
.Fn warn "const char *fmt" "..."
.Ft void
.Fn warnc "int code" "const char *fmt" "..."
.Ft void
.Fn warnx "const char *fmt" "..."
.Fd #include <stdio.h>
.Ft void
.Fn err_set_file "FILE *fp"
.Ft void
.Fn err_set_exit "void (*exitf)(int)"
.Fd #include <stdarg.h>
.Ft void
.Fn verr "int eval" "const char *fmt" "va_list args"
.Ft void
.Fn verrc "int eval" "int code" "const char *fmt" "va_list args"
.Ft void
.Fn verrx "int eval" "const char *fmt" "va_list args"
.Ft void
.Fn vwarn "const char *fmt" "va_list args"
.Ft void
.Fn vwarnc "int code" "const char *fmt" "va_list args"
.Ft void
.Fn vwarnx "const char *fmt" "va_list args"
.Sh 解説
.Fn err
関数と
.Fn warn
関数のファミリは、標準エラー出力、または
.Fn err_set_file
関数を使用して指定した別のファイル上にフォーマット済みの
エラーメッセージを表示します。
すべての場合に、プログラム名の最後のコンポーネント、コロンキャラクタ、
およびスペースが出力されます。
.Va fmt
引数が NULL でない場合、
フォーマット済みのエラーメッセージが出力されます。
.Fn errc ,
.Fn verrc ,
.Fn warnc ,
および
.Fn vwarnc
の各関数の場合、
.Va code
引数で密接な関係のあるエラーメッセージも出力されます。
必要であれば、別のコロンとスペースが前に付けられます。
すべての場合に、出力の後には改行キャラクタが続きます。
.Pp
.Fn err ,
.Fn verr ,
.Fn warn ,
および
.Fn vwarn
の各関数は、
.Fn errc
ファミリの
.Va code
引数ではなく、グローバル変数
.Va errno
を使用します。
.Pp
.Fn err ,
.Fn verr ,
.Fn errc ,
.Fn verrc ,
.Fn errx ,
および
.Fn verrx
の各関数は、
戻りませんが、引数
.Fa eval
の値で終了します。
.Fn err_set_exit
関数を使用して、
.Xr exit 3
の前に呼び出される関数を指定して、必要なクリーンアップを
実行できます。
.Va exitf
用に NULL 関数ポインタを割り当てると、フックが
何もしないようにリセットされます。
.Sh 例
現在の errno 情報を表示し終了します。
.Bd -literal -offset indent
if ((p = malloc(size)) == NULL)
	err(1, NULL);
if ((fd = open(file_name, O_RDONLY, 0)) == -1)
	err(1, "%s", file_name);
.Ed
.Pp
エラーメッセージを表示して終了します。
.Bd -literal -offset indent
if (tm.tm_hour < START_TIME)
	errx(1, "too early, wait until %s", start_time_string);
.Ed
.Pp
エラーの警告
.Bd -literal -offset indent
if ((fd = open(raw_device, O_RDONLY, 0)) == -1)
	warnx("%s: %s: trying the block device",
	    raw_device, strerror(errno));
if ((fd = open(block_device, O_RDONLY, 0)) == -1)
	err(1, "%s", block_device);
.Ed
.Pp
グローバル変数
.Va  errno
を使用しないエラーの警告
.Bd -literal -offset indent
error = my_function();	/* returns a value from <errno.h> */
if (error != 0)
	warnc(error, "my_function");
.Ed
.Sh 関連項目
.Xr exit 3 ,
.Xr strerror 3
.Pp
.Sh 歴史
.Fn err
関数と
.Fn warn
関数は最初に
.Bx 4.4
で現れました。
.Fn err_set_file
関数と
.Fn err_set_exit
関数は最初に
.Fx 2.1
で現れました。
.Fn errc
関数と
.Fn warnc
関数は最初に
.Fx 3.0
で現れました。