plucky (3) vscanf.3.gz

Provided by: manpages-de-dev_4.25.1-1_all bug

BEZEICHNUNG

       scanf, fscanf, vscanf, vfscanf - Anpassung des Datei-Eingabeformats

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

       #include <stdio.h>

       int scanf(const char *restrict format, …);
       int fscanf(FILE *restrict datenstrom,
                  const char *restrict format, …);

       #include <stdarg.h>

       int vscanf(const char *restrict format, va_list ap);
       int vfscanf(FILE *restrict datenstrom,
                  const char *restrict format, va_list ap);

   Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):

       vscanf(), vfscanf():
           _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

BESCHREIBUNG

       Die  Funktionenfamilie  scanf() prüft formatierte Eingaben wie sscanf(3), liest aber aus einer DATEI. Die
       korrekte Verwendung dieser Funktionen ist sehr  schwierig  und  es  wird  empfohlen,  mit  fgets(3)  oder
       getline(3)  ganze Zeilen zu lesen und sie später mit sscanf(3) oder noch spezialisierteren Funktionen wie
       strtol(3) auszuwerten.

       Die Funktion scanf() liest Eingaben  von  der  Standardeingabe  stdin,  fscanf  liest  Eingaben  von  dem
       Datenstrom-Zeiger datenstrom.

       Die  Funktion  vfscanf()  verhält sich analog zu vfprintf(3) und liest Eingaben von dem Datenstrom-Zeiger
       datenstrom, wobei eine variable Argumentliste von Zeigern benutzt wird (siehe  stdarg(3)).  Die  Funktion
       vscanf() ist zu vprintf(3) analog und liest aus der Standardeingabe.

RÜCKGABEWERT

       Bei  Erfolg geben diese Funktionen die Anzahl der Eingabeelemente zurück, die erfolgreich übereinstimmten
       und zugewiesen wurden. Dies können weniger sein, als bereitgestellt wurden oder null, wenn ein  »matching
       failure« auftrat.

       Der  Wert  EOF  wird  zurückgegeben,  wenn  das  Ende der Eingabe erreicht wird, bevor entweder die erste
       erfolgreiche Umwandlung oder ein »matching failure«  auftrat.  EOF  wird  auch  zurückgegeben,  wenn  ein
       Lesefehler  auftritt.  In diesem Fall wird die Fehleranzeige für den Datenstrom gesetzt (siehe ferror(3))
       und errno so gesetzt, dass es den Fehler angibt.

FEHLER

       EAGAIN Der Dateideskriptor, der datenstrom zugrundeliegt, ist als nicht  blockierend  gekennzeichnet  und
              die Leseaktion würde blockieren.

       EBADF  Der Dateideskriptor, der datenstrom zugrundeliegt, ist ungültig oder nicht zum Lesen geöffnet.

       EILSEQ Eingabe-Byteabfolge bildet kein gültiges Zeichen.

       EINTR  Die Leseaktion wurde durch ein Signal unterbrochen; siehe signal(7).

       EINVAL Nicht genug Argumente oder format ist NULL.

       ENOMEM Speicher aufgebraucht.

ATTRIBUTE

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

       ┌─────────────────────────────────────────────────────────────┬───────────────────────┬──────────────────┐
       │SchnittstelleAttributWert             │
       ├─────────────────────────────────────────────────────────────┼───────────────────────┼──────────────────┤
       │scanf(), fscanf(), vscanf(), vfscanf()                       │ Multithread-Fähigkeit │ MT-Sicher locale │
       └─────────────────────────────────────────────────────────────┴───────────────────────┴──────────────────┘

STANDARDS

       C11, POSIX.1-2008.

GESCHICHTE

       C99, POSIX.1-2001.

WARNUNGEN

       Diese  Funktionen  erschweren  es,  Zeilenumbrüche von anderen Leerraumzeichen zu unterscheiden. Dies ist
       insbesondere für zeilengepufferte Eingabe, wie beim Standardeingabe-Datenstrom, problematisch.

       Diese Funktionen  können  keine  Fehler  nach  der  letzten,  nicht  unterdrückten  Umwandlungsfestlegung
       berichten.

FEHLER

       Es  ist  unmöglich,  genau  zu  bestimmen,  wie  viele Zeichen diese Funktionen aus dem Eingabedatenstrom
       verbraucht haben, da sie nur die Anzahl der erfolgreichen Umwandlungen  berichten.  Falls  beispielsweise
       die  Eingabe  »123\n a«  ist,  wird  scanf("%d %d",  &a,  &b)  die  Ziffern,  den  Zeilenumbruch  und das
       Leerzeichen, aber nicht den Buchstaben a verbrauchen. Dies erschwert es, sich von ungültiger  Eingabe  zu
       erholen.

SIEHE AUCH

       fgets(3), getline(3), sscanf(3)

ÜBERSETZUNG

       Die  deutsche  Übersetzung  dieser  Handbuchseite  wurde  von  Patrick Rother <krd@gulu.net>, Chris Leick
       <c.leick@vollbio.de> und Helge Kreutzmann <debian@helgefjell.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⟩.