VPRINTF(3S) — NEWS-OS Programmer’s Manual
名称
vprintf, vfprintf, vsprintf − 可変個数引数の書式付き出力
形式
#include <stdio.h>
#include <varargs.h>
int vprintf(format, ap)
char ∗format;
va_list ap;
int vfprintf(stream, format, ap)
FILE ∗stream;
char ∗format;
va_list ap;
int vsprintf(s, format, ap)
char ∗s, ∗format;
va_list ap;
解説
vprintf、 vfprintf、 vsprintf は、可変個数の引数で呼ばれるのではなく、 varargs(3) で定義された引数リストで呼ばれるという点以外、 printf、 fprintf、 sprintf と同じです。
使用例
vprintf を用いて、エラールーチンをどう書けばよいかを次に示します。
#include <stdio.h>
#include <varargs.h>
.
.
.
/∗
∗error は次のような形で呼び出される。
∗error(function_name, format, arg1, arg2...);
∗/
/∗VARARGS∗/
void
error(va_alist)
/∗ 引数の function_name と format は、varargs の定義により
∗ 別々に宣言されることはない。
∗/
va_dcl
{
va_list args;
char ∗fmt;
va_start(args);
/∗ エラーを起こした関数の名前を出力する ∗/
(void)fprintf(stderr, "ERROR in %s: ", va_arg(args, char ∗));
fmt = va_arg(args, char ∗);
/∗ 残りのメッセージを出力する ∗/
(void)vfprintf(stderr, fmt, args);
va_end(args);
(void)abort( );
}
関連事項
NEWS-OSRelease 4.2.1R