Sun Studio 12 Update 1: C++ ユーザーズガイド

11.4.1.1 公開変換ルーチン

iostream のインタフェースには、マルチスレッドで使用しても安全な、再入可能な公開関数が追加されています。これらの関数は、追加引数としてユーザーが指定したバッファーを受け取ります。これらの関数を次に示します。

表 11–2 マルチスレッドで使用しても安全な、再入可能な公開関数

関数 

内容の説明  

char *oct_r (char *buf,

int buflen,

long num,

int width)

数値を 8 進数の形式で表現した ASCII 文字列のポインタを返す。width が 0 (ゼロ) ではない場合は、その値が書式設定用のフィールド幅になります。戻り値は、ユーザーが用意したバッファーの先頭を指すとはかぎりません。 

char *hex_r (char *buf,

int buflen,

long num,

int width)

数値を 16 進数の形式で表現した ASCII 文字列のポインタを返す。width が 0 (ゼロ) ではない場合は、その値が書式設定用のフィールド幅になります。戻り値は、ユーザーが用意したバッファーの先頭を指すとはかぎりません。 

char *dec_r (char *buf,

int buflen,

long num,

int width)

数値を 10 進数の形式で表現した ASCII 文字列のポインタを返す。width が 0 (ゼロ) ではない場合は、その値が書式設定用のフィールド幅になります。戻り値は、ユーザーが用意したバッファーの先頭を指すとはかぎりません。 

char *chr_r (char *buf,

int buflen,

long num,

int width)

文字 chr を含む ASCII 文字列のポインタを返す。width が 0 (ゼロ) ではない場合は、その値と同じ数の空白に続けて chr が格納されます。戻り値は、ユーザーが用意したバッファーの先頭を指すとはかぎりません。

char *form_r (char *buf,

int buflen,

long num,

int width)

sprintf によって書式設定した文字列のポインタを返す。書式文字列 format 以降のすべての引数を使用します。ユーザーが用意したバッファーに、変換後の文字列を収容できるだけの大きさがなければいけません。


注 –

以前の libC との互換性を確保するために提供されている iostream ライブラリの公開変換ルーチン (octhexdecchrform) は、マルチスレッドで使用すると安全ではありません。