 |
≫ |
|
|
 |
名称vprintf(), vfprintf(), vsprintf(), vsnprintf() ― フォーマットした varargs 引き数リストの出力 構文#include <stdarg.h> #include <stdio.h> int vprintf(const char *format, va_list ap); int vfprintf(FILE *stream, const char *format, va_list ap); int vsprintf(char *s, const char *format, va_list ap); int vsnprintf(char *s, size_t maxsize, const char *format, va_list ap); 説明vprintf(), vfprintf(), vsprintf(),
および vsnprintf() の動作は、それぞれ printf(), fprintf(), sprintf() および snprintf() と同じです。違いは、可変長引き数ではなく、 <stdarg.h> で定義される引き数リストを使うということです。 例vfprintf() を使ってエラールーチンを書いた例です。 #include <stdarg.h> #include <stdio.h> . . . /* * error should be called using the form: * error(function_name, format, arg1, arg2...); */ /*VARARGS0*/ void error(va_alist) va_dcl { va_list args; char *fmt; va_start(args); /* print out name of function causing error */ (void)fprintf(stderr, "ERROR in %s: ", va_arg(args, char *)); fmt = va_arg(args, char *); /* print out remainder of message */ (void)vfprintf(stderr, fmt, args); va_end(args); (void)abort( ); } 標準準拠vprintf(): AES, SVID2, SVID3, XPG2, XPG3,
XPG4, FIPS 151-2, POSIX.1, ANSI C vfprintf(): AES, SVID2, SVID3, XPG2, XPG3,
XPG4, FIPS 151-2, POSIX.1, ANSI C vsprintf(): AES, SVID2, SVID3, XPG2, XPG3,
XPG4, FIPS 151-2, POSIX.1, ANSI C
|