perror() — エラー・メッセージの出力

フォーマット

#include <stdio.h>
void perror(const char *string);

言語レベル: ANSI

スレッド・セーフ: はい。

説明

perror() 関数は、エラー・メッセージを stderr に出力します。 string が NULL ではなく、ヌル文字を指示しない場合には、string によって指示されたストリングは、標準エラー・ストリームに出力され、その後ろにコロンとスペースが続きます。次に、errno の値と関連したメッセージが出力され、その後ろに改行文字が続きます。

正確な結果を得るには、エラーのあるライブラリー関数が戻った直後に perror() 関数を必ず呼び出してください。そうでないと、後続の呼び出しにより errno 値が変更されることがあります。

戻り値

戻り値はありません。

errno の値は、次のいずれかに設定されます。

意味
EBADDATA
メッセージ・データが無効です。
EBUSY
レコードまたはファイルが使用中です。
ENOENT
ファイルまたはライブラリーが見つかりません。
EPERM
アクセス権限が不十分です。
ENOREC
レコードが見つかりません。
EIOERROR
リカバリー不能な入出力エラーが発生しました。
EIORECERR
リカバリー可能な入出力エラーが発生しました。

perror() の使用例

この例では、ストリームを開こうと試みます。 fopen() が失敗した場合、この例ではメッセージが出力されてからプログラムが終了します。

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
   FILE *fh;
 
   if ((fh = fopen("mylib/myfile","r")) == NULL)
   {
      perror("Could not open data file");
      abort();
   }
}

関連情報



[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]