C言語 - 標準ライブラリ - stdio.h - perror

クラウディア 
1. 概要
2. perror

1. 概要

 システムのエラーメッセージに関する関数です。

2. perror

 「perror」は、システムのエラーメッセージを標準出力へ出力する、一番原始的な関数です。

void perror(const char *string);
 例えば以下のようなソースを書いて

#include <errno.h>
#include <stdio.h>
#include <string.h>

int main()
{
    FILE *file;

    if ((file = fopen("aaa.txt", "r")) == NULL)
    {
        perror("fopen");
        return errno;
    }

    fclose(file);

    return 0;
}
 ファイル aaa.txt が存在しない状態で実行した場合、以下のように表示されます。

> ./a.out
fopen: No such file or directory
 前半の「fopen:」は、「perror」へ渡した文字列の末尾に :(コロン)をつけたものです。  引数が ""(NULL 文字列)の場合、コロンも含めて表示されず、エラーメッセージのみとなります。  もっとも原始的というのは、標準出力へただ出力するだけなので、文字列として編集して出力するには「string.h」にある、「strerror」や「strerror_r」を使用します。