OSDN Git Service

(split) LDP: draft snapshot generated from latest ja.po files.
[linuxjm/LDP_man-pages.git] / draft / man3 / errno.3
1 .\" Copyright (c) 1996 Andries Brouwer (aeb@cwi.nl)
2 .\"
3 .\" This is free documentation; you can redistribute it and/or
4 .\" modify it under the terms of the GNU General Public License as
5 .\" published by the Free Software Foundation; either version 2 of
6 .\" the License, or (at your option) any later version.
7 .\"
8 .\" The GNU General Public License's references to "object code"
9 .\" and "executables" are to be interpreted as the output of any
10 .\" document formatting or typesetting system, including
11 .\" intermediate and printed output.
12 .\"
13 .\" This manual is distributed in the hope that it will be useful,
14 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
15 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 .\" GNU General Public License for more details.
17 .\"
18 .\" You should have received a copy of the GNU General Public
19 .\" License along with this manual; if not, write to the Free
20 .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
21 .\" USA.
22 .\"
23 .\" 5 Oct 2002, Modified by Michael Kerrisk <mtk.manpages@gmail.com>
24 .\"     Updated for POSIX.1 2001
25 .\" 2004-12-17 Martin Schulze <joey@infodrom.org>, mtk
26 .\"     Removed errno declaration prototype, added notes
27 .\" 2006-02-09 Kurt Wall, mtk
28 .\"     Added non-POSIX errors
29 .\"
30 .\"*******************************************************************
31 .\"
32 .\" This file was generated with po4a. Translate the source file.
33 .\"
34 .\"*******************************************************************
35 .TH ERRNO 3 2008\-07\-09 "" "Linux Programmer's Manual"
36 .SH 名前
37 errno \- 直近に発生したエラーの番号
38 .SH 書式
39 .\".sp
40 .\".BI "extern int " errno ;
41 \fB#include <errno.h>\fP
42 .SH 説明
43 ヘッダファイル \fI<errno.h>\fP で整数型の変数 \fIerrno\fP が定義されており、
44 システムコールやいくつかのライブラリ関数は、エラーが発生した際に この変数にその原因を示す値を設定する。 この値は呼び出しの返り値がエラー
45 (ほとんどのシステムコールでは \-1 で、ほとんどのライブラリ関数では \-1 か NULL) を示したときに
46 のみ意味を持つが、ライブラリ関数は成功した場合も \fIerrno\fP を変更することが許されている。
47
48 有効なエラー番号はいずれも 0 以外の値を持つ。 どのシステムコールもライブラリ関数も \fIerrno\fP を 0 に設定することはない。
49
50 いくつかのシステムコールやライブラリ関数 (例えば \fBgetpriority\fP(2))  では、成功した場合の有効な返り値として \-1
51 が返されることがある。 このような場合、成功なのかエラーなのかを区別するためには、 呼び出しの前に \fIerrno\fP を 0
52 に設定しておけばよい。呼び出しの返り値がエラー発生の可能性を 示すものだった場合には、 \fIerrno\fP が 0 以外の値かを見て確認すればよい。
53
54 \fIerrno\fP は、ISO C standard で \fIint\fP 型の変更可能な左辺値 として定義されており、明示的に宣言を行ってはならない;
55 \fIerrno\fP はマクロの場合もありえる。 \fIerrno\fP はスレッド毎に値を持つ。 つまりあるスレッドで \fIerrno\fP が設定されても、
56 他のスレッドの \fIerrno\fP には影響しない。
57
58 POSIX.1 で定義されているすべてのエラー名には、 それぞれ異なる値が対応していなければならない。 但し、 \fBEAGAIN\fP と
59 \fBEWOULDBLOCK\fP は例外で、これらは同じ値を持ってもよい。
60
61 .\" The following is now
62 .\" POSIX.1 (2001 edition) lists the following symbolic error names.  Of
63 .\" these, \fBEDOM\fP and \fBERANGE\fP are in the ISO C standard.  ISO C
64 .\" Amendment 1 defines the additional error number \fBEILSEQ\fP for
65 .\" coding errors in multibyte or wide characters.
66 .\"
67 Below is a list of the symbolic error names that are defined on Linux.  Some
68 of these are marked \fIPOSIX.1\fP, indicating that the name is defined by
69 POSIX.1\-2001, or \fIC99\fP, indicating that the name is defined by C99.
70 .TP  16
71 \fBE2BIG\fP
72 引き数リストが長過ぎる (POSIX.1)
73 .TP 
74 \fBEACCES\fP
75 許可がない (POSIX.1)
76 .TP 
77 \fBEADDRINUSE\fP
78 アドレスがすでに使用されている (POSIX.1)
79 .TP 
80 \fBEADDRNOTAVAIL\fP
81 .\" EADV is only an error on HURD(?)
82 アドレスが使用できない (POSIX.1)
83 .TP 
84 \fBEAFNOSUPPORT\fP
85 アドレス・ファミリーがサポートされていない (POSIX.1)
86 .TP 
87 \fBEAGAIN\fP
88 リソースが一時的に利用不可 (\fBEWOULDBLOCK\fP と同じ値でもよい) (POSIX.1)
89 .TP 
90 \fBEALREADY\fP
91 接続が既に処理中である (POSIX.1)
92 .TP 
93 \fBEBADE\fP
94 不正なやり取り (exchange) である
95 .TP 
96 \fBEBADF\fP
97 ファイルディスクリプタが不正である (POSIX.1)
98 .TP 
99 \fBEBADFD\fP
100 ファイルディスクリプタが不正な状態である
101 .TP 
102 \fBEBADMSG\fP
103 メッセージが不正である (POSIX.1)
104 .TP 
105 \fBEBADR\fP
106 不正なリクエストディスクリプタ
107 .TP 
108 \fBEBADRQC\fP
109 不正なリクエストコード
110 .TP 
111 \fBEBADSLT\fP
112 .\" EBFONT is defined but appears not to be used by kernel or glibc.
113 不正なスロット
114 .TP 
115 \fBEBUSY\fP
116 リソースが使用中である (POSIX.1)
117 .TP 
118 \fBECANCELED\fP
119 操作がキャンセルされた (POSIX.1)
120 .TP 
121 \fBECHILD\fP
122 子プロセスが無い (POSIX.1)
123 .TP 
124 \fBECHRNG\fP
125 チャンネル番号が範囲外である
126 .TP 
127 \fBECOMM\fP
128 送信時に通信エラーが発生した
129 .TP 
130 \fBECONNABORTED\fP
131 接続が中止された (POSIX.1)
132 .TP 
133 \fBECONNREFUSED\fP
134 接続が拒否された (POSIX.1)
135 .TP 
136 \fBECONNRESET\fP
137 接続がリセットされた (POSIX.1)
138 .TP 
139 \fBEDEADLK\fP
140 リソースのデッドロックを回避した (POSIX.1)
141 .TP 
142 \fBEDEADLOCK\fP
143 \fBEDEADLK\fP の同義語
144 .TP 
145 \fBEDESTADDRREQ\fP
146 宛先アドレスが必要である (POSIX.1)
147 .TP 
148 \fBEDOM\fP
149 .\" EDOTDOT is defined but appears to be unused
150 数学関数で引き数が領域外である (out of domain)
151 .TP 
152 \fBEDQUOT\fP
153 .\" POSIX just says "Reserved"
154 ディスク・クォータ (quota) を超過した (POSIX.1)
155 .TP 
156 \fBEEXIST\fP
157 ファイルが存在する (POSIX.1)
158 .TP 
159 \fBEFAULT\fP
160 アドレスが不正である (POSIX.1)
161 .TP 
162 \fBEFBIG\fP
163 ファイルが大き過ぎる (POSIX.1)
164 .TP 
165 \fBEHOSTDOWN\fP
166 ホストがダウンしている
167 .TP 
168 \fBEHOSTUNREACH\fP
169 ホストに到達不能である (POSIX.1)
170 .TP 
171 \fBEIDRM\fP
172 識別子が削除された (POSIX.1)
173 .TP 
174 \fBEILSEQ\fP
175 不正なバイト列 (POSIX.1, C99)
176 .TP 
177 \fBEINPROGRESS\fP
178 操作が実行中である (POSIX.1)
179 .TP 
180 \fBEINTR\fP
181 関数呼び出しが割り込まれた (POSIX.1); \fBsignal\fP(7)  参照。
182 .TP 
183 \fBEINVAL\fP
184 引数が無効である (POSIX.1)
185 .TP 
186 \fBEIO\fP
187 入出力エラー (POSIX.1)
188 .TP 
189 \fBEISCONN\fP
190 ソケットが接続されている (POSIX.1)
191 .TP 
192 \fBEISDIR\fP
193 ディレクトリである (POSIX.1)
194 .TP 
195 \fBEISNAM\fP
196 名前付きのファイルである
197 .TP 
198 \fBEKEYEXPIRED\fP
199 鍵が期限切れとなった
200 .TP 
201 \fBEKEYREJECTED\fP
202 鍵がサーバにより拒否された
203 .TP 
204 \fBEKEYREVOKED\fP
205 鍵が無効となった
206 .TP 
207 \fBEL2HLT\fP
208 停止 (レベル 2)
209 .TP 
210 \fBEL2NSYNC\fP
211 同期できていない (レベル 2)
212 .TP 
213 \fBEL3HLT\fP
214 停止 (レベル 3)
215 .TP 
216 \fBEL3RST\fP
217 停止 (レベル 3)
218 .TP 
219 \fBELIBACC\fP
220 必要な共有ライブラリにアクセスできなかった
221 .TP 
222 \fBELIBBAD\fP
223 壊れた共有ライブラリにアクセスしようとした
224 .TP 
225 \fBELIBMAX\fP
226 リンクしようとした共有ライブラリが多過ぎる
227 .TP 
228 \fBELIBSCN\fP
229 a.out のライブラリセクションが壊れている (corrupted)
230 .TP 
231 \fBELIBEXEC\fP
232 共有ライブラリを直接実行できなかった
233 .TP 
234 \fBELOOP\fP
235 .\" ELNRNG is defined but appears to be unused
236 シンボリック・リンクの回数が多過ぎる (POSIX.1)
237 .TP 
238 \fBEMEDIUMTYPE\fP
239 間違ったメディア種別である
240 .TP 
241 \fBEMFILE\fP
242 オープンされているファイルが多過ぎる (POSIX.1)
243 .TP 
244 \fBEMLINK\fP
245 リンクが多過ぎる (POSIX.1)
246 .TP 
247 \fBEMSGSIZE\fP
248 メッセージが長過ぎる (POSIX.1)
249 .TP 
250 \fBEMULTIHOP\fP
251 .\" POSIX says "Reserved"
252 マルチホップ (multihop) を試みた (POSIX.1)
253 .TP 
254 \fBENAMETOOLONG\fP
255 .\" ENAVAIL is defined, but appears not to be used
256 ファイル名が長過ぎる (POSIX.1)
257 .TP 
258 \fBENETDOWN\fP
259 ネットワークが不通である (POSIX.1)
260 .TP 
261 \fBENETRESET\fP
262 接続がネットワーク側から中止された (POSIX.1)
263 .TP 
264 \fBENETUNREACH\fP
265 ネットワークが到達不能である (POSIX.1)
266 .TP 
267 \fBENFILE\fP
268 .\" ENOANO is defined but appears to be unused.
269 システム全体でオープンされているファイルが多過ぎる (POSIX.1)
270 .TP 
271 \fBENOBUFS\fP
272 .\" ENOCSI is defined but appears to be unused.
273 使用可能なバッファ空間がない (POSIX.1 (XSI STREAMS option))
274 .TP 
275 \fBENODATA\fP
276 ストリームの読み出しキューの先頭に読み出し可能なメッセージがない (POSIX.1)
277 .TP 
278 \fBENODEV\fP
279 そのようなデバイスは無い (POSIX.1)
280 .TP 
281 \fBENOENT\fP
282 そのようなファイルやディレクトリは無い (POSIX.1)
283 .TP 
284 \fBENOEXEC\fP
285 実行ファイル形式のエラー (POSIX.1)
286 .TP 
287 \fBENOKEY\fP
288 要求された鍵が利用できない
289 .TP 
290 \fBENOLCK\fP
291 利用できるロックが無い (POSIX.1)
292 .TP 
293 \fBENOLINK\fP
294 .\" POSIX says "Reserved"
295 リンクが切れている (POSIX.1)
296 .TP 
297 \fBENOMEDIUM\fP
298 メディアが見つからない
299 .TP 
300 \fBENOMEM\fP
301 十分な空きメモリ領域が無い (POSIX.1)
302 .TP 
303 \fBENOMSG\fP
304 要求された型のメッセージが存在しない (POSIX.1)
305 .TP 
306 \fBENONET\fP
307 マシンがネットワーク上にない
308 .TP 
309 \fBENOPKG\fP
310 パッケージがインストールされていない
311 .TP 
312 \fBENOPROTOOPT\fP
313 指定されたプロトコルが利用できない (POSIX.1)
314 .TP 
315 \fBENOSPC\fP
316 デバイスに空き領域が無い (POSIX.1)
317 .TP 
318 \fBENOSR\fP
319 指定されたストリーム・リソースが存在しない (POSIX.1 (XSI STREAMS option))
320 .TP 
321 \fBENOSTR\fP
322 ストリームではない (POSIX.1 (XSI STREAMS option))
323 .TP 
324 \fBENOSYS\fP
325 関数が実装されていない (POSIX.1)
326 .TP 
327 \fBENOTBLK\fP
328 ブロックデバイスが必要である
329 .TP 
330 \fBENOTCONN\fP
331 ソケットが接続されていない (POSIX.1)
332 .TP 
333 \fBENOTDIR\fP
334 ディレクトリではない (POSIX.1)
335 .TP 
336 \fBENOTEMPTY\fP
337 .\" ENOTNAM is defined but appears to be unused.
338 ディレクトリが空ではない (POSIX.1)
339 .TP 
340 \fBENOTSOCK\fP
341 ソケットではない (POSIX.1)
342 .TP 
343 \fBENOTSUP\fP
344 操作がサポートされていない (POSIX.1)
345 .TP 
346 \fBENOTTY\fP
347 I/O 制御操作が適切でない (POSIX.1)
348 .TP 
349 \fBENOTUNIQ\fP
350 名前がネットワークで一意ではない
351 .TP 
352 \fBENXIO\fP
353 そのようなデバイスやアドレスはない (POSIX.1)
354 .TP 
355 \fBEOPNOTSUPP\fP
356 ソケットでサポートしていない操作である (POSIX.1)
357 .sp
358 (Linux では \fBENOTSUP\fP と \fBEOPNOTSUPP\fP は同じ値を持つが、 POSIX.1
359 に従えば両者のエラー値は区別されるべきである。)
360 .TP 
361 \fBEOVERFLOW\fP
362 指定されたデータ型に格納するには値が大き過ぎる (POSIX.1)
363 .TP 
364 \fBEPERM\fP
365 操作が許可されていない (POSIX.1)
366 .TP 
367 \fBEPFNOSUPPORT\fP
368 サポートされていないプロトコルファミリーである
369 .TP 
370 \fBEPIPE\fP
371 パイプが壊れている (POSIX.1)
372 .TP 
373 \fBEPROTO\fP
374 プロトコル・エラー (POSIX.1)
375 .TP 
376 \fBEPROTONOSUPPORT\fP
377 プロトコルがサポートされていない (POSIX.1)
378 .TP 
379 \fBEPROTOTYPE\fP
380 ソケットに指定できないプロトコル・タイプである (POSIX.1)
381 .TP 
382 \fBERANGE\fP
383 結果が大き過ぎる (POSIX.1, C99)
384 .TP 
385 \fBEREMCHG\fP
386 リモートアドレスが変わった
387 .TP 
388 \fBEREMOTE\fP
389 オブジェクトがリモートにある
390 .TP 
391 \fBEREMOTEIO\fP
392 リモート I/O エラー
393 .TP 
394 \fBERESTART\fP
395 システムコールが中断され再スタートが必要である
396 .TP 
397 \fBEROFS\fP
398 読み出し専用のファイルシステムである (POSIX.1)
399 .TP 
400 \fBESHUTDOWN\fP
401 通信相手がシャットダウンされて送信できない
402 .TP 
403 \fBESPIPE\fP
404 無効なシーク (POSIX.1)
405 .TP 
406 \fBESOCKTNOSUPPORT\fP
407 サポートされていないソケット種別である
408 .TP 
409 \fBESRCH\fP
410 .\" ESRMNT is defined but appears not to be used
411 そのようなプロセスは無い (POSIX.1)
412 .TP 
413 \fBESTALE\fP
414 ファイルハンドルが古い状態になっている (POSIX.1)
415 .sp
416 NFS や他のファイルシステムで起こりうる。
417 .TP 
418 \fBESTRPIPE\fP
419 ストリーム・パイプ・エラー
420 .TP 
421 \fBETIME\fP
422 時間が経過した (POSIX.1 (XSI STREAMS option))
423 .sp
424 (POSIX.1 では "STREAM \fBioctl\fP(2)  timeout" と書かれている)
425 .TP 
426 \fBETIMEDOUT\fP
427 .\" ETOOMANYREFS is defined, but appears not to be used.
428 操作がタイムアウトした (POSIX.1)
429 .TP 
430 \fBETXTBSY\fP
431 テキストファイルが使用中である (POSIX.1)
432 .TP 
433 \fBEUCLEAN\fP
434 Structure needs cleaning
435 .TP 
436 \fBEUNATCH\fP
437 プロトコルのドライバが付与 (attach) されていない
438 .TP 
439 \fBEUSERS\fP
440 ユーザ数が多過ぎる
441 .TP 
442 \fBEWOULDBLOCK\fP
443 操作がブロックされる見込みである (\fBEAGAIN\fP と同じ値でもよい) (POSIX.1)
444 .TP 
445 \fBEXDEV\fP
446 不適切なリンク (POSIX.1)
447 .TP 
448 \fBEXFULL\fP
449 変換テーブルが一杯である
450 .SH 注意
451 以下はよくやる間違いである。
452 .in +4n
453 .nf
454
455 if (somecall() == \-1) {
456     printf("somecall() failed\en");
457     if (errno == ...) { ... }
458 }
459
460 .fi
461 .in
462 このようにすると、参照している時点では \fIerrno\fP はもはや \fIsomecall\fP()  から返された値を保持しているとは限らない
463 (\fBprintf\fP(3)  により変更されているかもしれない)。 ライブラリコールをまたいで \fIerrno\fP
464 の値を保存したい場合は、以下のように保存しなければならない:
465 .in +4n
466 .nf
467
468 if (somecall() == \-1) {
469     int errsv = errno;
470     printf("somecall() failed\en");
471     if (errsv == ...) { ... }
472 }
473 .fi
474 .in
475 .PP
476 昔の C では、 \fI<errno.h>\fP をインクルードするのではなく \fIerrno\fP を手動で (\fIextern int
477 errno\fP のように) 定義するのが一般的であった。 \fBこのようなことはしないこと\fP。 こうすると、最近のバージョンの C
478 ライブラリでは正しく動作しないだろう。 しかし、(非常に) 古い UNIX システムでは、 \fI<errno.h>\fP
479 がなく、宣言が必要なことがあるかもしれない。
480 .SH 関連項目
481 \fBerr\fP(3), \fBerror\fP(3), \fBperror\fP(3), \fBstrerror\fP(3)