出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/11 05:25 UTC 版)
「printf」の記事における「安全性を向上させたもの」の解説
C11のAnnex K Bounds‐checking interfacesで規定された、安全性を向上させた種類が存在する。それぞれ、関数名の末尾に_sを付けた名称となっている。これらの関数は、__STDC_WANT_LIB_EXT1__を1に定義した上で対応するヘッダをインクルードすると宣言される。 #define __STDC_WANT_LIB_EXT1__ 1#include #include int printf_s(const char * restrict format, ...);int fprintf_s(FILE * restrict fp, const char * restrict format, ...);int sprintf_s(char * restrict str, rsize_t size, const char * restrict format, ...);int snprintf_s(char * restrict str, rsize_t size, const char * restrict format, ...);int vprintf_s(const char * restrict format, va_list arg);int vfprintf_s(FILE * restrict fp, const char * restrict format, va_list arg);int vsprintf_s(char * restrict str, rsize_t size, const char * restrict format, va_list arg);int vsnprintf_s(char * restrict str, rsize_t size, const char * restrict format, va_list arg);int wprintf_s(const wchar_t * restrict format, ...);int fwprintf_s(FILE * restrict fp, const wchar_t * restrict format, ...);int swprintf_s(wchar_t * restrict str, rsize_t size, const wchar_t * restrict format, ...);int snwprintf_s(wchar_t * restrict str, rsize_t size, const wchar_t * restrict format, ...);int vwprintf_s(const wchar_t * restrict format, va_list arg);int vfwprintf_s(FILE * restrict fp, const wchar_t * restrict format, va_list arg);int vswprintf_s(wchar_t * restrict str, rsize_t size, const wchar_t * restrict format, va_list arg);int vsnwprintf_s(wchar_t * restrict str, rsize_t size, const wchar_t * restrict format, va_list arg); 以下のような機能が追加されている。 FILE*や文字列の引数(%sに対応する可変長引数部分の引数も含む)に対するNULLポインタチェック %n書式の禁止
※この「安全性を向上させたもの」の解説は、「printf」の解説の一部です。
「安全性を向上させたもの」を含む「printf」の記事については、「printf」の概要を参照ください。