gets






fgetc, fgets, getc, getchar, ungetc − Eingabe von Zeichen
und Strings


#include<stdio.h>

);int fgetc(FILE *stream
, int char *fgets(char *s
);int getc(FILE *stream
int getchar(void);
);char *gets(char *s
, FILE *int ungetc(int c

fgetc() liest das nächste Zeichen von stream und gibt es
als ein unsignedchar gecastet in einem zurück, oder EOF bei
Ende oder Datefehler.

     getc() ist äquivalent zu auÃer daà es als ein Makro
implementiert sein darf, der stream mehr als einmal
auswertet.

     getchar() ist äquivalent zu )getc(stdin

     gets() liest einen Zeile von stdin in der Puffer, auf
den s zeigt, bis entweder ein abschlieÃender Zeilenvorschub
oder auftritt, welche durch ersetzt werden.  Es wird keine
Prüfung auf Pufferüberlauf durchgeführt (siehe BUGS
unten).

     fgets() liest höchstens size minus ein Zeichen von
stream und speichert sie in dem Puffer, auf den zeigt.  Das
Lesen stoppt nach einem EOF oder Zeilenvorschub.  Wenn ein
Zeilenvorschub gelesen wird, wird er in dem Puffer
gespeichert.  Ein ’\0’ wird nach dem letzten Zeichen im
Puffer gespeichert.

     ungetc() schiebt c zurück zu gecasted in einem wenn es
für folgende Leseoperationen möglich ist.
Zurückgeschobene Zeichen werden in umgekehrter Reihenfolge
zurückgegeben; nur ein Zurückschieben wird unterstützt.

     Aufrufe der hier beschriebenen Funktionen können für
den selben Eingabestream untereinander und mit anderen
Eingabefunktionen der Bibliothek stdio gemischt werden.

geben das gelesene Zeichen als ein unsignedchar gecastet in
einem int zurück, oder EOF bei Dateiende oder Fehler.

     geben s zurück bei Erfolg, und NULL im Fehlerfall oder
wenn Dateiende auftritt ohne daà Zeichen gelesen wurden.

     ungetc() gibt c zurück bei Erfolg, oder EOF im
Fehlerfall.










                             ‐2‐


ANSI ‐ C, POSIX.1

Da es unmöglich ist zu sagen, wie viele Zeichen Zeichen
gets() lesen wird, ohne die Daten vorher zu kennen und da
gets() fortfährt und Daten über das Ende des Puffers
hinaus speichert, ist es sehr gefährlich, diese Funktion zu
benutzen.  Sie wurde benutzt um in Rechner einzubrechen.
Benutze fgets() anstatt.

     Es ist nicht ratsam, Aufrufe von Funktionen der
Bibliothek stdio mit low‐level‐Aufrufen von read() für den
Dateideskriptor zu mischen, der mit demselben Eingabestream
verbunden ist; die Ergebnisse sind undefiniert und sehr
wahrscheinlich nicht erwünscht.