kazmax - Linux で自宅サーバー

assert_perror - ライブラリコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 返り値
  5. 準拠
  6. バグ
  7. 関連項目

名前

assert_perror - test errnum and abort

書式

#define _GNU_SOURCE#include <assert.h>

void assert_perror(int errnum);

説明

最後に <assert.h> がインクルードされた時にマクロ NDEBUG が定義されていた場合、マクロ assert_perror ()は何のコードも生成せず、したがって全く何もしない。 そうでない場合、マクロ assert_perror ()は標準出力にエラー・メッセージを表示し、 errnum が 0 でない場合には abort ()を呼び出してプログラムを終了させる。 メッセージには、ファイル名、マクロ呼び出しがあった関数名と行番号、 strerror(errnum) の出力が含まれる。

返り値

返り値はない。

準拠

これは GNU による拡張である。

バグ

assert マクロの目的は、プログラマがプログラム中のバグを探す手助けをすること であり、コーディング間違いがない場合には何が起こることはありえない。 しかしながら、システムコールやライブラリコールの場合、状況がかなり違っていて、 エラーが返されることがありえるし、実際あるだろう。そしてそのような状況でも テストされるべきである。この場合には、NDEBUG を定義することで無効にできる assert ではなく、適切なエラー処理コードで対処すべきである。 このマクロは決して使わないこと。

関連項目