Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

vfprintf, vprintf, vsprintf - Formatiert schreiben über variable Argumentliste

&pagelevel(4)&pagelevel

Definition

#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);

Beschreibung

vfprintf(), vprintf() und vsprintf() entsprechen jeweils den Funktionen fprintf(), printf() und sprintf() mit folgendem Unterschied: Sie werden statt mit einer variablen Argumentanzahl mit einer Argumentliste, wie sie in stdarg.h definiert ist, aufgerufen. Die Argumente der Liste sind in Anzahl und Datentyp zum Übersetzungszeitpunkt nicht bekannt.

Da die vprint-Funktionen das va_arg-Makro, aber nicht das va_end-Makro aufrufen, ist der Wert von ap nach der Rückkehr der Funktionen unbestimmt.

Returnwert

Siehe fprintf().

Fehler

Siehe fprintf().

Hinweis

Nach Verwendung dieser Funktionen sollten Sie das Makro va_end(ap) aufrufen, um den Zeiger ap wieder auf einen definierten Wert zu setzen, damit eventuell nachfolgende Aufrufe dieser Funktionen korrekte Startwerte haben.

vfprintf() beginnt in der variablen Argumentliste immer mit dem ersten Argument. Die Ausgabe ab einem beliebigen Argument lässt sich mit entsprechend vielen va_arg-Aufrufen vor Aufruf von vfprintf() erreichen. Jeder va_arg-Aufruf positioniert die Argumentliste um ein Argument weiter.

Ob vfprintf() für eine BS2000- oder eine POSIX-Datei ausgeführt wird, hängt von der Programmumgebung ab.

BS2000
Die ANSI-Syntax der Formatzeichenkette gilt sowohl im KR-Modus (nur bei C/C++ Versionen kleiner V3 vorhanden) als auch im ANSI-Modus (festgelegt mit dem LANGUAGE-STANDARD-Operanden der SOURCE-PROPERTIES-Option).

Bei Textdateien mit der Zugriffsart SAM und variabler Satzlänge, für die zusätzlich eine maximale Satzlänge angegeben ist, gilt: Wenn bei fopen() die Angabe split=no gemacht wurde, werden Sätze, die länger als die maximale Satzlänge sind, beim Schreiben auf die maximale Satzlänge gekürzt. Standardmäßig oder mit der Angabe split=yes werden diese Sätze in mehrere Sätze aufgeteilt. Hat ein Satz genau die maximale Satzlänge, wird nach diesem ein Satz der Länge Null geschrieben. (Ende)

Siehe auch

fprintf(), stdarg.h, stdio.h, varargs.h.