OSDN Git Service

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