標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
ISO C 改訂 |
両方 |
#include <wchar.h>
int fwprintf(FILE * __restrict__ stream, const wchar_t * __restrict__ format, …);
int swprintf(wchar_t * __restrict__ wcs, size_t n, const wchar_t * __restrict__ format, …);
int wprintf(const wchar_t * __restrict__ format, …);
#define _OPEN_SYS_UNLOCKED_EXT 1
#include <wchar.h>
int fwprintf_unlocked(FILE * __restrict__ stream, const wchar_t * __restrict__ format, …);
int wprintf_unlocked(const wchar_t * __restrict__ format, …);
#define _XOPEN_SOURCE
#define _MSE_PROTOS
#include <wchar.h>
int fwprintf(FILE * __restrict__ stream, const wchar_t * __restrict__ format, …);
int swprintf(wchar_t *__restrict__ wcs, size_t n, const wchar_t * __restrict__ format, …);
int wprintf(const wchar_t * __restrict__ format, …);
#define _OPEN_SYS_UNLOCKED_EXT 1
#include <wchar.h>
int fwprintf_unlocked(FILE * __restrict__ stream, const wchar_t * __restrict__ format, …);
int wprintf_unlocked(const wchar_t * __restrict__ format, …);
swprintf() の場合は、NULL ワイド文字が、書き込まれるワイド文字の末尾に書き込まれます。NULL ワイド文字は、戻りの合計の一部として数えられません。オーバーラップした オブジェクト間でコピーが行われた場合には、動作は未定義です。
fwprintf_unlocked() ファミリーは、スレッド・セーフでないことを 除いて、機能的に fwprintf() ファミリーと等価です。この関数をマルチスレッドのアプリケーション内で安全に使用できるのは、 flockfile() 関数または ftrylockfile() 関数のどちらかへの呼び出しが成功した後のように、 呼び出しスレッドが (FILE*) オブジェクトを所有している間に、この関数を呼び出す場合だけです。
XPG4 の特殊な動作: プログラム・ソース・ファイル内で、wchar ヘッダーをインクルードするステートメントより前に、XPG4 の動作を指定するフィーチャー・テスト・マクロを定義した場合には、_MSE_PROTOS フィーチャー・テスト・マクロも定義して、プログラムのコンパイル時に使用可能な wchar ヘッダーに、fwprintf()、swprintf()、または wprintf() 関数の宣言を行う必要があります。 XPG4 と他のフィーチャー・テスト・マクロのリストについては、表 1 を参照してください。
正常に実行された場合、fwprintf()、wprintf()、および swprintf() は、終了 NULL ワイド文字をカウントに入れずに、書き込まれたワイド文字の数を戻します。
正常に実行されなかった場合は、負の値が戻されます。
n 文字以上のワイド文字の書き込みが要求された場合、swprintf() は負の値を戻し、errno を設定してエラーを示します。