C で超簡易ログ出力機能とdie関数

defineを使って、簡易ログ出力をしてます。

#define d(...) {FILE *fp = fopen("debug.log", "a");fprintf(fp, __VA_ARGS__);fclose(fp);}
#define die(msg)    {d("ERROR: %s(%d) %s %s\n", __FILE__, __LINE__, __FUNCTION__, msg); exit(1);}
d("ticket_id: %d\n", ticket_id);
die("failed to exec booooo.");

__FUNCTION__は知らなかったです。激しく便利。ちょっと調べてみたところ、__FUNCTION__、__VA_ARGS__は、 C99 なら使えるということですが、C99自体のことを知りませんでした。http://ja.wikipedia.org/wiki/C99 とりあえず、gccなら使えるということですね。

正式版を出す頃までには、真面目なログ機能が必要だろうな。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください