Provided by: manpages-de-dev_4.13-4_all bug

BEZEICHNUNG

       wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - formatierte Ausgabe mit wide
       characters (wchar_t)

ÜBERSICHT

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

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       Alle oben aufgeführten Funktionen:
           _XOPEN_SOURCE >= 500 || _ISOC99_SOURCE ||
           _POSIX_C_SOURCE >= 200112L

BESCHREIBUNG

       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 Zeichenkette format besteht aus wide characters.

             Die Ausgabe besteht aus wide characters und nicht aus Bytes.

             swprintf()  und  vswprintf()  verwenden  ein  Argument   maxlen,   sprintf(3)   und
              vsprintf(3)  jedoch  nicht.  snprintf(3)  und  vsnprint(3)  verwenden ebenfalls das
              Argument  maxlen,  doch  diese  Funktionen  geben  unter  Linux  im   Falle   eines
              Pufferüberlaufs (buffer overflow) nicht -1 zurück.

       Die Behandlung der Konvertierungszeichen c und s unterscheidet sich:

       c      Wenn  kein  l-Modifikator  vorhanden  ist, wird das int-Argument durch die Funktion
              btowc(3)  in  ein  wchar_t  umgewandelt  und  dieses  wird  geschrieben.  Ist   ein
              I-Modifikator vorhanden, wird das Argument wint_t (ein wide character) geschrieben.

       s      Wenn  kein  Modifikator  l  vorhanden ist: Vom const char *-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  mbrtowc(3)  aufgerufen;  jedesmal  mit  einem
              Konvertierungszustand, der bei dem Anfangszustand vor dem ersten Byte beginnt.  Die
              wide  characters werden bis zum abschließenden wchar_t-Zeichen »Null« (L'\0') (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 wide characters und nicht die  Anzahl  der
              Bytes  oder  Zeichenpositionen  auf  dem  Bildschirm  bezeichnet. Das Feld muss ein
              abschließendes NULL-Byte ('\0') 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 l-Modifikator vorhanden ist:
              Vom  const wchar_t *-Argument  wird  erwartet,  dass es ein Zeiger auf ein Feld von
              wchar_t ist. Wide characters aus dem Feld werden bis zu (aber nicht einschließlich)
              eines  abschließenden  wchar_t  »Null« geschrieben. Wenn eine Genauigkeit angegeben
              wird, werden nicht mehr als die angegebene Anzahl geschrieben. Das  Feld  muss  ein
              abschließendes  wchar_t  »Null« enthalten, wenn eine Genauigkeit angegeben wird und
              diese kleiner als oder gleich der Anzahl der wchar_t in dem Feld ist.

RÜCKGABEWERT

       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.

ATTRIBUTE

       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.

       ┌─────────────────────────┬───────────────────────┬────────────────┐
       │SchnittstelleAttributWert           │
       ├─────────────────────────┼───────────────────────┼────────────────┤
       │wprintf(), fwprintf(),   │ Multithread-Fähigkeit │ MT-Safe locale │
       │swprintf(), vwprintf(),  │                       │                │
       │vfwprintf(), vswprintf() │                       │                │
       └─────────────────────────┴───────────────────────┴────────────────┘

KONFORM ZU

       POSIX.1-2001, POSIX.1-2008, C99.

ANMERKUNGEN

       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)).

SIEHE AUCH

       fprintf(3), fputwc(3), fwide(3), printf(3), snprintf(3)

KOLOPHON

       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/.

ÜBERSETZUNG

       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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨debian-l10n-german@lists.debian.org⟩.