PRINTF

Section: Misc. Reference Manual Pages (9)
索引 jman

BSD mandoc
 

索引

名称

printf , uprintf , tprintf , log - フォーマットされた出力の変換  

索引

書式

In sys/types.h In sys/systm.h Ft int Fn printf const char *fmt ... Ft void Fn tprintf struct proc *p int pri const char *fmt ... Ft int Fn uprintf const char *fmt ... In sys/syslog.h Ft void Fn log int pri const char *fmt ...  

索引

解説

printf(9) ファミリの関数は printf(3) ファミリの関数と類似しています。 この異なった関数はそれぞれ異なった出力ストリームを使用します。 Fn uprintf 関数は現在のプロセスが制御している tty に出力しますが、 Fn printf はロギングファシリティおよびコンソールに出力します。 Fn tprintf 関数は Fa pri が -1 でない場合には、プロセス Fa p に関連づけられた tty およびロギングファシリティに出力します。 Fn log 関数は Fa pri によって示されたログレベルを使用して、 カーネルのロギングファシリティにメッセージを送ります。

これらそれぞれの関連した関数は、 printf(3) と同じ方法で Fa fmt パラメータを使用します。 しかしながら、 printf(9) は 2 つの他の変換指定子を追加しています。

%b 識別子は 2 つの引数を期待します。 Vt int および Vt char * です。 これらはビットマスクのデコードのため、 レジスタ値と印字マスクとして使用されます。 この印字マスクは 2 つの部分で構成されます。 基数と引数です。 基数値は整数値として表現される出力の基数です。 例えば、\10 は 8 進数を \20 は 16 進数を与えます。 引数はビット識別子の並びとして構成されます。 個々のビット識別子はこの識別子が表すビット番号の整数値で始まります。 識別子の残り部分はそのビットの名前を含む文字列です。 この文字列は次のビット識別子の始まりのビット番号、 または最後のビット識別子のために NUL で終端されます。

%D 識別子は 16 進ダンプを補助することを意図されています。 %D これは 2 つの引数を要求します。 Vt u_char * ポインタおよび Vt char * 文字列です。 ポインタが指しているメモリは、16 進数で一度に 1 バイト出力されます。 文字列は個々のバイトの間のデリミタとして使用されます。 もし存在すれば、幅ディレクティブが表示するバイト数を指定します。 デフォルトでは、16 バイトのデータが出力されます。

Fn log 関数はその Fa pri 引数 (ここは誤解されて `priority (優先度)' と呼ばれていた) に syslog(3) のレベル値の LOG_DEBUG から LOG_EMERG までを使用します。 代わりに、 Fa pri に -1 が与えられた場合には、そのメッセージはその前の Fn log の呼び出しによって開始された、最近のログメッセージに追加されます。 これらのメッセージはカーネル自身によって生成されるため、 このファシリティは常に LOG_KERN となります。  

索引

戻り値

Fn printf および Fn uprintf 関数は表示された文字数を返します。  

索引

使用例

この使用例は %b および %D 変換指定子の使用方法を示しています。 関数
void
printf_test(void)
{

        printf("reg=%b\n", 3, "\10\2BITTWO\1BITONE\n");
        printf("out: %4D\n", "AAAA", ":");
}

は下記の出力を発生させます。

reg=3<BITTWO,BITONE>
out: 41:41:41:41

この呼び出し

log(LOG_DEBUG, "%s%d: been there.\n", sc->sc_name, sc->sc_unit);

は適切なデバッグメッセージを優先度 ``kern.debug '' でシステムログに追加します。  

索引

関連項目

printf(3), syslog(3)


 

索引

Index

名称
書式
解説
戻り値
使用例
関連項目

jman



Time: 07:07:57 GMT, January 12, 2009