Provided by: manpages-de-dev_4.15.0-9_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 *restrict format, …);
       int fwprintf(FILE *restrict stream,
                    const wchar_t *restrict format, …);
       int swprintf(wchar_t *restrict wcs, size_t maxlen,
                    const wchar_t *restrict format, …);

       int vwprintf(const wchar_t *restrict format, va_list args);
       int vfwprintf(FILE *restrict stream,
                    const wchar_t *restrict format, va_list args);
       int vswprintf(wchar_t *restrict wcs, size_t maxlen,
                    const wchar_t *restrict 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(), swprintf(), vwprintf(),  │ Multithread-Fähigkeit │ MT-Safe locale │
       │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.13  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⟩.