.\" -*- coding: UTF-8 -*- .\" Copyright (c) Bruno Haible .\" .\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA) .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" %%%LICENSE_END .\" .\" References consulted: .\" GNU glibc-2 source code and manual .\" Dinkumware C library reference http://www.dinkumware.com/ .\" OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html .\" ISO/IEC 9899:1999 .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH WPRINTF 3 "6. März 2019" GNU Linux\-Programmierhandbuch .SH BEZEICHNUNG wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf \- formatierte Ausgabe mit wide characters (wchar_t) .SH ÜBERSICHT .nf \fB#include \fP \fB#include \fP .PP \fBint wprintf(const wchar_t *\fP\fIformat\fP\fB, …);\fP \fBint fwprintf(FILE *\fP\fIstream\fP\fB, const wchar_t *\fP\fIformat\fP\fB, …);\fP \fBint swprintf(wchar_t *\fP\fIwcs\fP\fB, size_t \fP\fImaxlen\fP\fB,\fP \fB const wchar_t *\fP\fIformat\fP\fB, …);\fP .PP \fBint vwprintf(const wchar_t *\fP\fIformat\fP\fB, va_list \fP\fIargs\fP\fB);\fP \fBint vfwprintf(FILE *\fP\fIstream\fP\fB, const wchar_t *\fP\fIformat\fP\fB, va_list \fP\fIargs\fP\fB);\fP \fBint vswprintf(wchar_t *\fP\fIwcs\fP\fB, size_t \fP\fImaxlen\fP\fB,\fP \fB const wchar_t *\fP\fIformat\fP\fB, va_list \fP\fIargs\fP\fB);\fP .fi .PP .RS -4 Mit Glibc erforderliche Makros (siehe \fBfeature_test_macros\fP(7)): .RE .PP .ad l Alle oben aufgeführten Funktionen: .RS 4 .\" .BR wprintf (), .\" .BR fwprintf (), .\" .BR swprintf (), .\" .BR vwprintf (), .\" .BR vfwprintf (), .\" .BR vswprintf (): _XOPEN_SOURCE\ >=\ 500 || _ISOC99_SOURCE || .br _POSIX_C_SOURCE\ >=\ 200112L .RE .ad .SH BESCHREIBUNG Die \fBwprintf\fP()\-Funktionsfamilie ist die Variante der \fBprintf\fP()\-Funktionsfamilie für »wide characters«. Sie erzeugen eine formatierte Ausgabe von wide characters. (Bei wide characters wird jedes Zeichen in einem \fIwchar_t\fP gespeichert und nimmt daher mehr als nur ein Byte ein.) .PP Die Funktionen \fBwprintf\fP() und \fBvwprintf\fP() geben wide characters auf \fIstdout\fP aus. Dazu darf \fIstdout\fP nicht byteorientiert sein (siehe die Funktion \fBfwide\fP(3) für weitere Informationen). .PP Die Funktionen \fBfwprintf\fP() und \fBvfwprintf\fP() geben wide characters auf \fIstream\fP aus. Dazu darf \fIstream\fP nicht byteorientiert sein (siehe die Funktion \fBfwide\fP(3) für weitere Informationen). .PP Die Funktionen \fBswprintf\fP() und \fBvswprintf\fP() schreiben ihre Ausgabe in ein Feld von \fIwchar_t\fP. Der Programmierer muss sicherstellen, dass in \fIwcs\fP mindestens für \fImaxlen\fP \fIwchar_t\fP Platz vorhanden ist. .PP Diese Funktionen entsprechen \fBprintf\fP(3), \fBvprintf\fP(3), \fBfprintf\fP(3), \fBvfprintf\fP(3), \fBsnprintf\fP(3) und \fBvsprintf\fP(3) mit den folgenden Unterschieden: .TP \fB\(bu\fP Die Zeichenkette \fIformat\fP besteht aus wide characters. .TP \fB\(bu\fP Die Ausgabe besteht aus wide characters und nicht aus Bytes. .TP \fB\(bu\fP \fBswprintf\fP() und \fBvswprintf\fP() verwenden ein Argument \fImaxlen\fP, \fBsprintf\fP(3) und \fBvsprintf\fP(3) jedoch nicht. \fBsnprintf\fP(3) und \fBvsnprint\fP(3) verwenden ebenfalls das Argument \fImaxlen\fP, doch diese Funktionen geben unter Linux im Falle eines Pufferüberlaufs (buffer overflow) nicht \-1 zurück. .PP Die Behandlung der Konvertierungszeichen \fBc\fP und \fBs\fP unterscheidet sich: .TP \fBc\fP Wenn kein \fBl\fP\-Modifikator vorhanden ist, wird das \fIint\fP\-Argument durch die Funktion \fBbtowc\fP(3) in ein \fIwchar_t\fP umgewandelt und dieses wird geschrieben. Ist ein \fBI\fP\-Modifikator vorhanden, wird das Argument \fIwint_t\fP (ein wide character) geschrieben. .TP \fBs\fP Wenn kein Modifikator \fBl\fP vorhanden ist: Vom \fIconst\ char\ *\fP\-Argument wird erwartet, dass es ein Zeiger auf ein Feld von Zeichen (Zeiger auf eine Zeichenkette) ist, die eine Folge aus Multibyte\-Zeichen enthält, beginnend im ursprünglichen Schiebezustand. Zeichen aus dem Feld werden in wide characters umgewandelt. Für jedes Zeichen wird die Funktion \fBmbrtowc\fP(3) aufgerufen; jedesmal mit einem Konvertierungszustand, der bei dem Anfangszustand vor dem ersten Byte beginnt. Die wide characters werden bis zum abschließenden \fIwchar_t\fP\-Zeichen »Null« (L\(aq\e0\(aq) (aber nicht inklusive) geschrieben. Wird eine Genauigkeit angegeben, so werden nicht mehr wide characters als die angegebene Anzahl geschrieben. Beachten Sie, dass die Genauigkeit die Anzahl der geschriebenen \fIwide characters\fP und nicht die Anzahl der \fIBytes\fP oder \fIZeichenpositionen auf dem Bildschirm\fP bezeichnet. Das Feld muss ein abschließendes NULL\-Byte (\(aq\e0\(aq) enthalten, wenn nicht eine Genauigkeit angegeben wurde, die so klein ist, dass die Zahl der umgewandelten wide characters erreicht wird, bevor das Ende des Feldes erreicht ist. Wenn ein \fBl\fP\-Modifikator vorhanden ist: Vom \fIconst\ wchar_t\ *\fP\-Argument wird erwartet, dass es ein Zeiger auf ein Feld von \fIwchar_t\fP ist. Wide characters aus dem Feld werden bis zu (aber nicht einschließlich) eines abschließenden \fIwchar_t\fP »Null« geschrieben. Wenn eine Genauigkeit angegeben wird, werden nicht mehr als die angegebene Anzahl geschrieben. Das Feld muss ein abschließendes \fIwchar_t\fP »Null« enthalten, wenn eine Genauigkeit angegeben wird und diese kleiner als oder gleich der Anzahl der \fIwchar_t\fP in dem Feld ist. .SH RÜCKGABEWERT Die Funktionen geben die Anzahl der geschriebenen wide characters zurück, ausschließlich des abschließenden \fIwchar_t\fP »Null« im Fall der Funktionen \fBswprintf\fP() und \fBvswprintf\fP(). Im Fehlerfall wird \-1 zurückgegeben. .SH ATTRIBUTE Siehe \fBattributes\fP(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke. .TS allbox; lbw24 lb lb l l l. Schnittstelle Attribut Wert T{ \fBwprintf\fP(), \fBfwprintf\fP(), .br \fBswprintf\fP(), \fBvwprintf\fP(), .br \fBvfwprintf\fP(), \fBvswprintf\fP() T} Multithread\-Fähigkeit MT\-Safe locale .TE .sp 1 .SH "KONFORM ZU" POSIX.1\-2001, POSIX.1\-2008, C99. .SH ANMERKUNGEN Das Verhalten von \fBwprintf\fP() hängt u.a. von der Kategorie \fBLC_TYPE\fP der aktuellen Locale ab. .PP Falls die Zeichenkette \fIformat\fP wide characters enthält, die keine ASCII\-Zeichen sind, wird das Programm nur dann richtig arbeiten, wenn der \fBLC_CTYPE\fP der Locale während der Laufzeit der gleiche ist wie der \fBLC_CTYPE\fP während des Kompilierens. Das passiert, weil der Datentyp \fIwchar_t\fP 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 \eunnnn löst das Problem nicht.) Daher sollte die Zeichenkette \fIformat\fP in internationalisierten Programmen ausschließlich aus »wide character«\-Versionen der ASCII\-Zeichen bestehen oder während der Laufzeit konstruiert werden (z.B. durch \fBgettext\fP(3) oder \fBiconv\fP(3) gefolgt von einem \fBmbstowcs\fP(3)). .SH "SIEHE AUCH" .\" .BR wscanf (3) \fBfprintf\fP(3), \fBfputwc\fP(3), \fBfwide\fP(3), \fBprintf\fP(3), \fBsnprintf\fP(3) .SH KOLOPHON Diese Seite ist Teil der Veröffentlichung 5.10 des Projekts Linux\-\fIman\-pages\fP. 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/. .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE 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 .MT debian-l10n-german@\:lists.\:debian.\:org Mailingliste der Übersetzer .ME .