Provided by: manpages-de-dev_2.14-1_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 darstellt, beginnend im ursprünglichen »initial
              shift state«. Zeichen aus dem Feld werden in wide characters umgewandelt. Für jedes
              Zeichen  wird  die  Funktion  mbrtowc(3)  aufgerufen; jedesmal mit dem anfänglichen
              Konvertierungszustand vor dem ersten Byte.  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
              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 ist kleiner als oder
              gleich der Anzahl der wchar_t in dem Feld.

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  4.16  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  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 <debian-l10n-german@lists.debian.org>.