fprintf_s、fwprintf_s
stdio.h:インデックス への移動
ヘッダー ファイル
stdio.h
カテゴリ
書式付き入出力関数
プロトタイプ
int fprintf_s(FILE * restrict stream, const char * restrict format, [,argument, ...]);
int fwprintf_s(FILE * restrict stream, const wchar_t * restrict format, [,argument, ...]);
説明
fprintf、fwprintf の代わりとなるもので、セキュリティ機能が強化されています。
fprintf_s は、format で指定された書式文字列に含まれている各形式指定子に適用される一連の引数を受け取ります。 書式付けしたデータを stream に出力します。 形式指定子の数は引数の数に一致する必要があり、またその逆も真です。
メモ: 形式指定子の詳細については、「Printf 書式指定子」を参照してください。
fprintf だけでなく、fprintf_s にも実行時制約が追加されています。format には %n 指定子を含めてはならず、%s 指定子に対応する arguments リスト内の引数は NULL ポインタであってはならないという制約です。
エラーが発生した場合、fprintf_s は出力の生成を中止します。
戻り値
fprintf_s は、転送された文字の数を返します。 エラーが発生した場合は、負の値を返します。
例
#include <stdio.h>
int main(void)
{
FILE *stream;
int i = 100;
char c = 'C';
float f = 1.234;
/* Open a file for update */
if(fopen_s(&stream,"DUMMY.FIL", "w+")){
printf("Unable to create DUMMY.FIL");
}
else{
/* Write some data to the file */
fprintf_s(stream, "%d %c %f", i, c, f);
}
/* Close the file */
fclose(stream);
return 0;
}
移植性
| POSIX | Win32 | ANSI C | ANSI C++ | |
|---|---|---|---|---|
|
fprintf_s |
+ |
+ |
+ |
+ |
|
fwprintf_s |
+ |
+ |
+ |