# 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 初版