2つのエラー関数の使用方法
#include "apue.h"
#include <errno.h>
int main(int argc,char *argv[])
{
fprintf(stderr,"EACCES: %s
",strerror(EACCES));
errno=ENOENT;
perror(argv[0]);
exit(0);
}
コンパイル:
gcc -o stderror stderror.c
実行:
./stderror
結果:
EACCES: Permission denied ./stderror: No such file or directory
プログラムの説明:
プログラムのargv[0]は./stderrorは、perrorにパラメータとして渡されます.これは標準的なUNIX慣例です.この方法を使用すると、プログラムがパイプラインの一部として実行される場合、例えば、次のようになります.
prog1 < inputfile | prog2 | prog3 > ouputfile
3つのプログラムのうちどれが特定のエラーメッセージを生成したかを明らかにすることができます.