OSDN Git Service

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