エラーメッセージの表示

C言語でUNIXコマンドのエラーメッセージと同等のものを表示することを考えます。

システムコールやライブラリ関数が成功したかどうかを調べて、失敗した場合に適切な処理をすることをエラー処理と言います。これらは失敗時に外部変数(errno.hにマクロにより定義されている)にエラー番号をセットします。

$ man errno


NAME
       errno - number of last error

SYNOPSIS
       #include <errno.h>

DESCRIPTION
       The <errno.h> header file defines the integer variable errno, which is set by system calls
       and some library functions in the event of an error to  indicate  what  went  wrong.


以下のプログラムでは、エラー番号を読み取りそのエラー番号が意味するエラーメッセージを標準エラー出力に出力します。



/* errno.c */
#include<stdio.h>
#include<errno.h>
int main(void)
{
        errno = ENOENT;
        perror("test");
}



$ ./errno
test: No such file or directory