GETS(3)

BEZEICHNUNG
fgetc, fgets, getc, getchar, gets, ungetc - Eingabe von Zeichen und Zeichenketten

ÜBERSICHT
#include <stdio.h>

int fgetc(FILE *stream);

char *fgets(char *s, int size, FILE *stream);

int getc(FILE *stream);

int getchar(void);

char *gets(char *s);

int ungetc(int c, FILE *stream);

BESCHREIBUNG
fgetc() liest das nächste Zeichen aus stream und gibt es als ein unsigned char zurück, das in ein int umgewandelt wurde oder EOF bei Dateiende oder Fehler.

getc() ist äquivalent zu fgetc(), außer dass es als ein Makro implementiert sein darf, das stream mehr als einmal auswertet.

getchar() ist äquivalent zu getc(stdin).

gets() liest eine Zeile von stdin in den Puffer, auf den s zeigt, bis entweder ein abschließender Zeilenvorschub oder EOF auftritt, welche durch ein Null-Byte ('\0') ersetzt werden. Es wird keine Prüfung auf Pufferüberlauf durchgeführt (siehe FEHLER unten).

fgets() liest höchstens size minus ein Zeichen von stream und speichert sie in dem Puffer, auf den s zeigt. Das Lesen endet nach einem EOF oder Zeilenvorschub. Wenn ein Zeilenvorschub gelesen wird, wird er in dem Puffer gespeichert. Nach dem letzten Zeichen im Puffer wird ein abschließendes Null-Byte ('\0') gespeichert.

ungetc() schiebt c zurück zu stream, umgewandelt in ein unsigned char, wo es für folgende Leseoperationen verfügbar 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 stdio-Bibliothek gemischt werden.

Für nicht sperrende Gegenstücke siehe unlocked_stdio(3).

RÜCKGABEWERT
fgetc(), getc() und getchar() geben das gelesene Zeichen als ein unsigned char zurück (umgewandelt in ein int) oder EOF bei Dateiende oder Fehler.

gets() und fgets() geben bei Erfolg s zurück und NULL im Fehlerfall oder wenn das Dateiende auftritt, ohne dass Zeichen gelesen wurden.

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

KONFORM ZU
C89, C99, POSIX.1-2001.

LSB missbilligt gets(), POSIX.1-2008 markiert gets() als veraltet. ISO C11 entfernt die Spezifikation von gets() aus der Sprache C. Seit Version 2.16 stellen die Header-Dateien der Glibc die Funktionsdeklaration nicht mehr bereit, wenn das Feature-Test-Makro _ISOC11_SOURCE definiert ist.

FEHLER
Benutzen Sie gets() niemals. Da ohne die vorherige Kenntnis der Daten nicht gesagt werden kann, wie viele Zeichen gets() lesen wird, und da gets() fortfahren wird, Daten über das Ende des Puffers hinaus zu speichern, ist die Nutzung dieser Funktion sehr gefährlich. Sie wurde benutzt, um in Rechner einzubrechen. Benutzen Sie stattdessen fgets().

Es ist nicht ratsam, Aufrufe von Funktionen der stdio-Bibliothek mit systemnahen Aufrufen von read(2) für den Dateideskriptor zu mischen, der mit demselben Eingabestream verbunden ist; die Ergebnisse sind nicht definiert und sehr wahrscheinlich nicht das, was sie wollen.

SIEHE AUCH
read(2), write(2), ferror(3), fgetwc(3), fgetws(3), fopen(3), fread(3), fseek(3), getline(3), getwchar(3), puts(3), scanf(3), ungetwc(3), unlocked_stdio(3), feature_test_macros(7)

KOLOPHON
This page is part of release 3.54 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net> und 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>.