WPRINTF(3) | Linux-Programmierhandbuch | WPRINTF(3) |
wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - formatierte Ausgabe mit wide characters (wchar_t)
#include <stdio.h> #include <wchar.h>
int wprintf(const wchar_t *format, …); int fwprintf(FILE *stream, const wchar_t *format, …); int swprintf(wchar_t *wcs, size_t maxlen, const wchar_t *format, …);
int vwprintf(const wchar_t *format, va_list args); int vfwprintf(FILE *stream, const wchar_t *format, va_list args); int vswprintf(wchar_t *wcs, size_t maxlen, const wchar_t *format, va_list args);
Alle oben aufgeführten Funktionen:
Die wprintf()-Funktionsfamilie ist die Variante der printf()-Funktionsfamilie für »wide characters«. Sie erzeugen eine formatierte Ausgabe von wide characters. (Bei wide characters wird jedes Zeichen in einem wchar_t gespeichert und nimmt daher mehr als nur ein Byte ein.)
Die Funktionen wprintf() und vwprintf() geben wide characters auf stdout aus. Dazu darf stdout nicht byteorientiert sein (siehe die Funktion fwide(3) für weitere Informationen).
Die Funktionen fwprintf() und vfwprintf() geben wide characters auf stream aus. Dazu darf stream nicht byteorientiert sein (siehe die Funktion fwide(3) für weitere Informationen).
Die Funktionen swprintf() und vswprintf() schreiben ihre Ausgabe in ein Feld von wchar_t. Der Programmierer muss sicherstellen, dass in wcs mindestens für maxlen wchar_t Platz vorhanden ist.
Diese Funktionen entsprechen printf(3), vprintf(3), fprintf(3), vfprintf(3), snprintf(3) und vsprintf(3) mit den folgenden Unterschieden:
Die Behandlung der Konvertierungszeichen c und s unterscheidet sich:
Die Funktionen geben die Anzahl der geschriebenen wide characters zurück, ausschließlich des abschließenden wchar_t »Null« im Fall der Funktionen swprintf() und vswprintf(). Im Fehlerfall wird -1 zurückgegeben.
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
Schnittstelle | Attribut | Wert |
wprintf(), fwprintf(), swprintf(), vwprintf(), vfwprintf(), vswprintf() | Multithread-Fähigkeit | MT-Safe locale |
POSIX.1-2001, POSIX.1-2008, C99.
Das Verhalten von wprintf() hängt u.a. von der Kategorie LC_TYPE der aktuellen Locale ab.
Falls die Zeichenkette format wide characters enthält, die keine ASCII-Zeichen sind, wird das Programm nur dann richtig arbeiten, wenn der LC_CTYPE der Locale während der Laufzeit der gleiche ist wie der LC_CTYPE während des Kompilierens. Das passiert, weil der Datentyp wchar_t von Plattform und Locale abhängig ist. (Die GNU Libc speichert wide characters als Unicode (ISO-10646), andere Plattformen tun das nicht. Auch die Verwendung von »universal character names« nach ISO C99 der Form \unnnn löst das Problem nicht.) Daher sollte die Zeichenkette format in internationalisierten Programmen ausschließlich aus »wide character«-Versionen der ASCII-Zeichen bestehen oder während der Laufzeit konstruiert werden (z.B. durch gettext(3) oder iconv(3) gefolgt von einem mbstowcs(3)).
Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
6. März 2019 | GNU |