gets(3S) gets(3S)
NAME
gets, fgets - Zeichenkette aus einem Stream lesen
SYNTAX
#include <stdio.h>
char *gets(char *s);
char *fgets(char *s, int n, FILE *stream);
BESCHREIBUNG
gets() liest Bytes von der Standardeingabe stdin in das Feld, auf das
s zeigt, bis ein Neue-Zeile-Zeichen gelesen oder das Dateiende
erreicht wird. Das Neue-Zeile-Zeichen wird gelöscht und die Zeichen-
kette mit dem Null-Byte beendet.
fgets() liest Bytes von stream in das Feld, auf das s zeigt, bis n-1
Bytes gelesen sind oder ein Neue-Zeile-Zeichen auf s übertragen wurde
oder das Dateiende erreicht ist. Die Zeichenkette wird mit dem Null-
Byte beendet.
Bei der Verwendung von gets() kann ein unbestimmtes Verhalten auftre-
ten, wenn die Länge einer Eingabezeile die Größe von s überschreitet.
Verwenden Sie deshalb fgets() anstelle von gets().
FEHLER
Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
errno(5).
Die Funktionen schlagen bei folgenden Bedingungen fehl:
EAGAIN Für den Dateideskriptor von stream ist das ONONBLOCK-Flag
gesetzt, und der Prozeß wird verzögert.
EBADF Der Dateideskriptor von stream ist kein zum Lesen geöffne-
ter Dateideskriptor.
EINTR Das Lesen wurde durch den Empfang eines Signals unterbro-
chen, und es wurden keine Daten übertragen.
EIO Ein physischer Ein-/Ausgabefehler ist aufgetreten, oder
der Prozeß ist Teil einer Hintergrundprozeßgruppe, die
versucht, vom steuernden Terminal zu lesen. Entweder igno-
riert oder blockiert der Prozeß das SIGTTIN-Signal, oder
die Prozeßgruppe ist verwaist. Dieser Fehler kann auch aus
implementierungsabhängigen Gründen auftreten.
EOVERFLOW Die Datei ist eine reguläre Datei, und es wurde versucht,
bis hin oder über den maximalen Offset hinaus zu lesen,
der dem entsprechenden Datenstrom zugeordnet ist.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
gets(3S) gets(3S)
Die Funktionen können bei folgenden Bedingungen fehlschlagen:
ENOMEM Es ist nicht genügend Speicherplatz verfügbar.
ENXIO Es liegt eine Anforderung eines nicht vorhandenen Geräts
vor, oder die Anforderung ging über die Leistungsgrenzen
des Gerätes hinaus.
ERGEBNIS
Wenn das Dateiende erreicht wird und keine Bytes gelesen wurden, wer-
den keine Bytes in s abgelegt und ein Nullzeiger zurückgegeben. Wenn
ein Lesefehler auftritt, wie z. B. beim Versuch, diese Funktionen auf
eine Datei anzuwenden, die nicht zum Lesen geöffnet wurde, wird ein
Nullzeiger zurückgegeben und die Fehleranzeige für den Stream gesetzt.
Wenn das Dateiende erreicht ist, wird die EOF-Anzeige des Streams
gesetzt. Andernfalls wird s zurückgegeben.
SIEHE AUCH
lseek(2), read(2), ferror(3S), fopen(3S), fread(3S), getc(3S),
scanf(3S), stdio(3S), ungetc(3S), lfs(5), stdio(5).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98