C言語の標準関数を目的別に調べることができる辞典

ホーム > C 標準関数逆引き辞典 > システム > システムエラーのメッセージを取得する

C 標準関数逆引き辞典

:: reverse dictionary ::

システム

※ソースファイルについて


システムエラーのメッセージを取得する

システムエラーのメッセージを取得するには、strerror 関数を使います。

≪宣言≫

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *errmsg;

errmsg = strerror(34);

ソースファイル

errmsg"Result too large" になります。

▼ 関数

char *strerror(int n)

エラー番号 n に対応するエラーメッセージへのポインタを返します。 エラーメッセージが画面に表示されることはありません。

通常はグローバル変数 errnon に指定します。

FILE *fp;
char *errmsg;

fp = fopen("sample.txt", "r");
if (fp == NULL)
{
  errmsg = strerror(errno);
}
else
{
  fclose(fp);
  exit(EXIT_SUCCESS);
}

ソースファイル

sample.txt が存在しない場合、errmsg"No such file or directory" になります。

エラー番号とエラーメッセージの対応は、コンパイラによって違います。 対応だけでなく、エラーメッセージが違う場合もあります。

よく採用されているエラーメッセージとその内容を挙げておきます。

エラーメッセージ エラー内容
Arg list too long 引数の個数が最大数を超えた
Bad address 不正なアドレスにアクセスした
Broken pipe 閉じたパイプを使用した
Exec format error 実行形式が間違っている
File exists ファイルがすでに存在する
File too large ファイルが大きすぎて開けない
Filename too long 指定したファイル名が最大長を超えた
Function not implemented 実装されていない関数を呼び出した
Invalid argument 無効な引数を指定した
Is a directory ファイル操作にディレクトリを指定した
No child processes 子プロセスがない
No space left on device デバイス(ディスク)の容量が足りない
No such device デバイスが見つからない
No such device or address デバイスまたはアドレスが見つからない
No such file or directory ファイルまたはディレクトリが見つからない
No such process プロセスが見つからない
Not a directory ディレクトリ操作にファイルを指定した
Not enough space 実行時に必要なメモリが不足している
Operation not permitted 操作する権限がない
Permission denied 実行する権限がない
Read-only file system 読み取り専用ファイルに書き込み処理をした
Result too large 演算結果が変数の最大値または最小値を超えた
●引数

n … エラー番号

●戻り値

エラーメッセージへのポインタ

注目キーワード ベスト5

  1. セキュリティ
  2. ホスティング
  3. レンタルサーバ
  4. ファイル復旧
  5. ハードディスク修復

システム - system -


ホーム > C 標準関数逆引き辞典 > システム > システムエラーのメッセージを取得する

Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com