vprintf


フォーマット指定したテキストを標準出力ストリームへ書き込みます。

備考

CS+が提供するデバッグ機能では,サポートされていません。

[所属]

標準ライブラリ

[指定形式]

#include <stdio.h>

int vprintf(const char *format, va_list arg);

[戻り値]

出力された文字数を返します。

[詳細説明]

argの指す引数列にformatの指す文字列で指定された書式を適用し,それにより出力された書式付きデータを標準入出力のstdoutに出力します。formatの記述方法はsprintfと同様です。本関数は,可変個数実引数並びをargで置き換えたprintfと等価です。本関数の呼び出しの前に,va_startargを初期化しておく必要があります。

[注意事項]

streamにstdout(標準出力), stderr(標準エラー)を指定します。ストリームの入出力先はI/Oアドレスなど1メモリ・アドレスを割り当てます。デバッガとの連携でこれらのストリームを使用するには,stdio.hファイルで定義されている,ストリーム構造体の初期値設定が必要です。関数を呼び出す前に,初期値設定を行ってください。

 

【stdio.hにおけるストリーム構造体の定義】

typedef struct {
        int             mode;           /*with error descriptions*/
        unsigend        handle;
        int             unget_c;
} FILE;
typedef int     fpos_t;
 
extern  FILE*   _REL_stdin();
extern  FILE*   _REL_stdout();
extern  FILE*   _REL_stderr();
#define stdin   (_REL_stdin())
#define stdout  (_REL_stdout())
#define stderr  (_REL_stderr())

構造体の第一メンバmodeは,入出力状態を示します。ACCSD_OUT/ACCSD_INとして内部定義されています。第三メンバunget_cは,押し戻し文字(stdinのみ)を示し,-1として内部定義されています。

-1の場合,押し戻し文字“なし”を表します。第二メンバhandleは,入出力I/Oアドレスを示します。handleには,使用するデバッガで決められている値を設定してください。

 

【入出力I/Oアドレス設定例】

stdout->handle = 0xfffff000;
stderr->handle = 0x00fff000;
stdin->handle  = 0xfffff002;