uprintf カーネル・サービス

目的

プロセスの制御端末にメッセージを印刷する要求を実行依頼します。

構文

#include <sys/uprintf.h>
int uprintf ( Format [,
Value, ...])
char *Format;

パラメーター

項目 説明
Format 次の 2 つのタイプのオブジェクトのいずれかまたは両方を含む文字ストリングを指定します。
  • プレーン文字。メッセージ出力ストリームにコピーされます。
  • 各変換指定により、 パラメーター・リストから 0 個以上の項目が取得されます。 各変換指定は、% (パーセント記号) とそれに続く、適用される変換のタイプを示す文字で構成されます。
    %
    変換を行いません。 % を印刷します。
    d, i
    整数 を受け入れ、それを符号付き 10 進表記に変換します。
    u
    整数 を受け入れ、符号なし 10 進表記に変換します。
    O
    整数 を受け入れ、それを符号なし 8 進表記に変換します。
    x
    整数 を受け入れ、符号なし 16 進表記に変換します。
    s
    をストリング (文字ポインター) として受け入れ、¥ 0 (ヌル文字) が検出されるまで、ストリングからの文字を出力します。 は非ヌルでなければならず、ストリングの最大長は 上限 (MAXSTR) 文字に制限されています。
    フィールド幅または精度の変換指定はサポートされていません。

    以下の定数は、 /usr/include/sys/uprintf.h ファイルに定義されています。

    • 上限 (MAXSTR)
    • 上限 MAXARGS
    • 上限 MAXCAT
    • 最大メッセージ数

    フォーマット ストリングには、0 から 上限 MAXARGS 定数で指定された変換指定の数までを入れることができます。 フォーマット ストリングの最大長は、 上限 (MAXSTR) 定数で指定された文字数です。 フォーマット は NULL 以外でなければなりません。

    構成されるカーネル・メッセージの最大長は、 最大メッセージ数 定数で指定される文字数に制限されます。 最大メッセージ数 定数で指定された文字数より大きいメッセージは破棄されます。

VALUE 変換する値を配列として指定します。 パラメーター・リスト内の項目の数、タイプ、および順序は、 フォーマット ストリング内の変換指定と一致している必要があります。

説明

UPRINTF カーネル・サービスは、カーネル・メッセージ要求を実行依頼します。 要求が正常に実行依頼されると、 uprintfd デーモンは、要求の フォーマット および パラメーターに基づいてメッセージを構成します。 その後、 uprintfd デーモンはメッセージをプロセスの制御端末に書き込みます。

実行環境

UPRINTF カーネル・サービスは、 処理 環境からのみ呼び出すことができます。

戻り値

項目 説明
0 操作が成功したことを示します。
ENOMEM 要求をバッファーに入れるためのメモリーが使用できないことを示します。
ENODEV プロセスに制御端末が存在しないことを示します。
ESRCH uprintfd デーモンがアクティブでないことを示します。 要求を実行依頼することはできません。
EINVAL ストリングの ストリング・ポインターがヌルであるか、またはストリングの パラメーターが 上限 (MAXSTR) 定数で指定された文字数より大きいことを示します。
EINVAL 次のうちの 1 つを示します。
  • フォーマット ストリング・ポインターがヌルです。
  • フォーマット ストリング内の文字数が、 上限 (MAXSTR) 定数で指定された文字数を超えています。
  • フォーマット ストリング内に含まれる変換指定の数が、 上限 MAXARGS 定数で指定された数を超えています。