.\" -*- 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 \- Umwandlung der Ausgabe formatierter weiter Zeichen .SH ÜBERSICHT .nf \fB#include \fP \fB#include \fP .PP \fBint wprintf(const wchar_t *\fP\fIformat\fP\fB, …);\fP \fBint fwprintf(FILE *\fP\fIdatenstrom\fP\fB, const wchar_t *\fP\fIformat\fP\fB, …);\fP \fBint swprintf(wchar_t *\fP\fIwzz\fP\fB, size_t \fP\fImaxlänge\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\fIarg\fP\fB);\fP \fBint vfwprintf(FILE *\fP\fIdatenstrom\fP\fB, const wchar_t *\fP\fIformat\fP\fB, va_list \fP\fIarg\fP\fB);\fP \fBint vswprintf(wchar_t *\fP\fIwzz\fP\fB, size_t \fP\fImaxlänge\fP\fB,\fP \fB const wchar_t *\fP\fIformat\fP\fB, va_list \fP\fIarg\fP\fB);\fP .fi .PP .RS -4 Mit Glibc erforderliche Feature\-Test\-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 weite Zeichen. Sie erzeugen eine formatierte Ausgabe von weiten Zeichen. (Bei weiten Zeichen 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 weite Zeichen 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 weite Zeichen auf \fIdatenstrom\fP aus. Dazu darf \fIdatenstrom\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 \fIwzz\fP mindestens für \fImaxlänge\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 weiten Zeichen. .TP \fB\(bu\fP Die Ausgabe besteht aus weiten Zeichen und nicht aus Bytes. .TP \fB\(bu\fP \fBswprintf\fP() und \fBvswprintf\fP() verwenden ein Argument \fImaxlänge\fP, \fBsprintf\fP(3) und \fBvsprintf\fP(3) jedoch nicht. \fBsnprintf\fP(3) und \fBvsnprint\fP(3) verwenden ebenfalls das Argument \fImaxlänge\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 weites Zeichen) 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 weite Zeichen umgewandelt. Für jedes weite Zeichen wird die Funktion \fBmbrtowc\fP(3) aufgerufen; jedesmal mit einem Konvertierungszustand, der bei dem Anfangszustand vor dem ersten Byte beginnt. Die weiten Zeichen werden bis zum abschließenden weiten Nullzeichen (L\(aq\e0\(aq) (aber nicht inklusive) geschrieben. Wird eine Genauigkeit angegeben, so werden nicht mehr weite Zeichen als die angegebene Anzahl geschrieben. Beachten Sie, dass die Genauigkeit die Anzahl der geschriebenen \fIweiten Zeichen\fP und nicht die Anzahl der \fIBytes\fP oder \fIZeichenpositionen auf dem Bildschirm\fP bezeichnet. Das Feld muss ein abschließendes Nullbyte (»\e0«) enthalten, wenn nicht eine Genauigkeit angegeben wurde, die so klein ist, dass die Zahl der umgewandelten weiten Zeichen 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. Weite Zeichen aus dem Feld werden bis zu (aber nicht einschließlich) eines abschließenden weiten Nullzeichens geschrieben. Wenn eine Genauigkeit angegeben wird, werden nicht mehr als die angegebene Anzahl geschrieben. Das Feld muss ein abschließendes weites Nullzeichen 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 weiten Zeichen zurück, ausschließlich des abschließenden weiten Nullzeichens 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() und weiterer hängt von der Kategorie \fBLC_TYPE\fP der aktuellen Locale ab. .PP Falls die Zeichenkette \fIformat\fP weite Zeichen 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 weite Zeichen als Unicode (ISO\-10646), andere Plattformen tun das nicht. Auch die Verwendung von universelle Zeichennamen nach C99 der Form \eunnnn löst das Problem nicht.) Daher sollte die Zeichenkette \fIformat\fP in internationalisierten Programmen ausschließlich aus weiten\-Zeichen\-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/. .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer erstellt. .PP 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. .PP 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 .