エラーメッセージ

標準ライブラリーで使われるエラー番号 errno、これの定義はもちろん errno.h にある。

標準エラー出力に errno の値を %d あたりで出力してしまってから、 errno.h やら asm-generic/errno-base.h を眺めてどんなエラーかを翻訳する…ということをしがちな自分への覚え書きだ。

#include <stdlib.h>
...
perror(__FUNCTION__);

標準エラー出力が使えないような端末でファイルにダンプしたいとか、そんな場合は strerror を使って翻訳する。

#include <errno.h>
#include <stdio.h>
#include <string.h>
...
char buf[256];
snprintf(buf, sizeof(buf), "ERROR in function %s: %s (%d)"
 , __FUNCTION__, strerrror(errno), errno);
...