KASSERT(9)

名称
KASSERT - カーネル数式検証マクロ

書式
options INVARIANTS

<sys/param.h> <sys/systm.h> KASSERT(expression, msg)

解説
options INVARIANTS オプション付きでコンパイルされたカーネル内では、 KASSERT() マクロは与えられた数式 expression をテストし、それが偽である場合には panic(9) 関数を呼び出し、稼働中のシステムを停止させます。

options INVARIANTS オプションの無いカーネル内では、 KASSERT() マクロは何もしない様に定義されます。 第 2 引数は、 printf(9) フォーマット文字列とその引数を括弧に括ったものです。

使用例
カーネル関数 vput() は、 NULL ポインタを引数として呼び出されてはなりません。

    void
    vput(vp)
            struct vnode *vp;
    {
    	struct proc *p = curproc;
    	KASSERT(vp != NULL, ("vput: null vp"));
    	...
    }

関連項目
config(8), panic(9)

作者
このマニュアルページは Jonathan M. Bresler <jmb@FreeBSD.org> が書きました。