STD_TVSNPrintf

構文

#include <nitro/std.h>

int STD_TVSNPrintf( char *dst, size_t len, const char *fmt, va_list vlist );

引数

dst 出力文字列の格納先バッファ
len 出力文字列の格納先バッファのサイズ
fmt 出力書式文字列(フォーマット文字列)
vlist 可変引数リスト

返り値

常に、書式文字列を正しく出力した場合の文字数を返します。この文字数に終端文字 '\0' は含まれません。

dst には出力文字列が書き込まれます。
出力文字数が len を下回る場合、全ての文字列と終端文字 '\0' が書き込まれます。
出力文字数が len と同じかそれを上回る場合、
(1) len が 0 でなければ dst[len - 1] に 終端終端文字 '\0' を書き込みます。
(2) len が 0 であれば dst に対して何も行ないません。

説明

軽量版の書式文字列関数です。

MSLの vsnprintf() と同じ動作ですが、以下の機能は使用できません。

・CodeWarrior 拡張の Pascal 文字列 (#s)
・MSL AltiVec 拡張 (v, vh, vl, hv, lv, @)
・浮動小数点 (e, E, f, g, G, a, A)
・ワイド文字列(wchar_t)
※Shift JIS マルチバイト文字列は使用可能です。

この関数は weak シンボルでコンパイルされますので、ユーザが独自で関数を定義すれば、それで上書きされます。
但しこの関数は、TWL-SDK 内の関数や上位ライブラリ、ミドルウェアなどで使用されている可能性がありますので、
上書きする場合は動作が変わらないように十分注意してください。

参照

STD_TSPrintf STD_TVSPrintf STD_TSNPrintf

履歴

2009/03/27 ユーザが独自で関数を定義した場合の注意を追記
2007/04/20 初版