#navi(../)
* errnoエラー番号に対する説明を表示する方法・strerror [#p60f9231]
errno(エラー番号)が表示された時、エラー番号に対する説明を取得する方法を以下に記します。~
(ヘッダーファイルを見て調べる方法もありますが、以下のようにプログラム内に記述しておけば簡単にエラー番号の意味を確認することができます。
#contents
#htmlinsertpcsp(c-top.html,c-sp.html)
* 関連記事 [#xa0caa1d]
-[[EFBIG(errno=27)対処方法>DEBUG/EFBIG(errno=27)対処方法]]
-[[メモリリークなどを探すツール・Electric Fence>DEBUG/メモリリークなどを探すツール・Electric Fence]]
-[[errnoエラー番号に対する説明を表示する方法・strerror>DEBUG/errnoエラー番号に対する説明を表示する方法・strerror]]
-[[C言語ソースコードの行番号を表示する方法>DEBUG/ソースコードの行番号を表示する方法]]
-[[Cプログラムが異常終了したときにコアダンプを出力するように設定する>DEBUG/異常終了したときにコアダンプを出力するように設定する]]
* strerrorを使ってみる [#m92162d9]
strerrorを使ってエラー番号に対するエラー内容を表示させるCサンプルコードを以下に記します。
** strerror書式 [#cb76df3e]
-必要なインクルード
#include <string.h>
-書式
char *strerror(int errnum);
errnumとなっているので、エラー番号を指定すれば、エラー番号に対応したメッセージのポインタ値が返却されます。
** strerrorのCサンプルコード [#j0134d0c]
&ref(strerror.c); (改行コードLF)
#include <stdio.h>
#include <string.h>
int main(void)
{
int i;
for(i=0; i<30; i++) {
printf("errno=%d : %s\n", i, strerror(i));
}
return 0;
}
** strerrorの実行結果 [#de933bdb]
サンプルコードでは、0〜29までのエラー番号について表示するようになっています。
$ gcc strerror.c -o strerror
$ ./strerror
errno=0 : Success
errno=1 : Operation not permitted
errno=2 : No such file or directory
errno=3 : No such process
errno=4 : Interrupted system call
errno=5 : Input/output error
errno=6 : No such device or address
errno=7 : Argument list too long
errno=8 : Exec format error
errno=9 : Bad file descriptor
errno=10 : No child processes
errno=11 : Resource temporarily unavailable
errno=12 : Cannot allocate memory
errno=13 : Permission denied
errno=14 : Bad address
errno=15 : Block device required
errno=16 : Device or resource busy
errno=17 : File exists
errno=18 : Invalid cross-device link
errno=19 : No such device
errno=20 : Not a directory
errno=21 : Is a directory
errno=22 : Invalid argument
errno=23 : Too many open files in system
errno=24 : Too many open files
errno=25 : Inappropriate ioctl for device
errno=26 : Text file busy
errno=27 : File too large
errno=28 : No space left on device
errno=29 : Illegal seek
以上、strerrorのCサンプルコードでした。
#htmlinsertpcsp(c-btm.html,c-sp.html)