kclib1のページ#1

  • (by K, 2019.04.16)

(3) kerrorExit

  • void kerrorExit(const char *f, ...)
    • 標準エラー出力にメッセージを出力して(printf準拠)、exit(EXIT_FAILURE);します。末尾の改行も省略して書きます。
    • エラー処理を少しでも楽にするために用意しています。

  • [効果]この関数を使うことで、エラー処理がこんなに簡単になります。
    // 使用前
    if (p == NULL) {
        fprintf(stderr, "p is NULL!\n");
        exit(EXIT_FAILURE);
    }
    
    // 使用後
    if (p == NULL)
        kerrorExit("p is NULL!");
    • 4行を要していた記述が、2行になりました!記述が簡単になることでエラー処理を書きやすくなり、それだけセキュリティチェックをする負担が減ることになります。
    • もちろんささやかなことではありますが、でもこういうことから積み上げていきたいのです。

  • [内部実装]
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdarg.h>
    
    void kerrorExit(const char *f, ...)
    {
        va_list ap;
        va_start(ap, f);
        vfprintf(stderr, f, ap);
        fprintf(stderr, "\n");
        va_end(ap);
        exit(EXIT_FAILURE);
    }

こめんと欄


コメントお名前NameLink

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-04-16 (火) 14:08:48 (216d)