fwscanf()、swscanf()、wscanf() - 定様式ワイド文字入力の変換

標準

標準/拡張機能 C/C++ 依存項目

ISO C 改訂
ISO/ANSI C++
C99
Single UNIX Specification、バージョン 3
Language Environment

両方 z/OS® V1R7

形式

XPG4:
#define _MSE_PROTOS
#include <stdio.h>
#include <wchar.h>

int fwscanf(FILE *__restrict__ stream, 
					const wchar_t *__restrict__ format, ... );

int swscanf(const wchar_t * __restrict__ wcs, 
					const wchar_t * __restrict__ format, …);

int wscanf(const wchar_t *__restrict__ format, ... );

#define _OPEN_SYS_UNLOCKED_EXT 1
#include <wchar.h>

int fwscanf_unlocked(FILE *__restrict__ stream, 
					const wchar_t *__restrict__ format, ... );
int wscanf_unlocked(const wchar_t *__restrict__ format, ... );
XPG4 および swscanf():
#define _XOPEN_SOURCE
#define _MSE_PROTOS
#include <wchar.h>

int swscanf(const wchar_t *wcs, const wchar_t *format, …);

機能説明

fwscanf()、swscanf()、および wscanf() の各関数は、次に示す点を除いて、それぞれ fscanf()、scanf()、および sscanf() と同等です。

注: ワイド文字ストリングの終わりに達することは、fscanf() 関数と scanf() 関数の場合に char ストリングの終わりに達することと同じです。オーバーラップした オブジェクト間でコピーが行われた場合には、動作は未定義です。

fwscanf_unlocked() ファミリーは、スレッド・セーフでないことを除いて、 機能的に fwscanf() ファミリーと等価です。これらの関数をマルチスレッドのアプリケーション内で安全に使用できるのは、 flockfile() 関数または ftrylockfile() 関数のどちらかへの呼び出しが成功した後のように、 呼び出しスレッドが (FILE*) オブジェクトを所有している間に、これらの関数を呼び出す場合だけです。

XPG4 および swscanf() の特殊な動作: プログラム・ソース・ファイル内の wchar ヘッダーをインクルードするステートメントより前に、XPG4 の動作を指定してフィーチャー・テスト・マクロを定義した場合には、_MSE_PROTOS フィーチャー・テスト・マクロも定義して、プログラムのコンパイル時に使用可能な wchar ヘッダーに swscanf() 関数の宣言を行う必要があります。 XPG4 と他のフィーチャー・テスト・マクロのリストについては、表 1 を参照してください。

戻り値

正常に実行されると、これらは割り当てられた入力項目数を戻しますが、以前のマッチングが失敗した場合、この数は提供された数より少ないか、0 の場合もあります。変換の前に入力障害が起こった場合は、EOF が戻されます。

関連情報