gets - eine Zeichenkette aus der Standardeingabe holen (VERALTET)
Standard-C-Bibliothek (
libc,
-lc)
#include <stdio.h>
[[veraltet]] char *gets(char *s);
Benutzen Sie diese Funktion niemals.
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 Nullbyte (»\0«) ersetzt werden. Es
wird keine Prüfung auf Pufferüberlauf durchgeführt (siehe
FEHLER unten).
gets() gibt bei Erfolg
s zurück und
NULL im
Fehlerfall oder wenn das Dateiende auftritt, ohne dass Zeichen gelesen wurden.
Dennoch kann angesichts der fehlenden Überprüfung auf
Speicherüberläufe keine Garantie gegeben werden, dass die
Funktion überhaupt etwas zurückgibt.
Siehe
attributes(7) für eine Erläuterung der in diesem
Abschnitt verwandten Ausdrücke.
Schnittstelle |
Attribut |
Wert |
gets() |
Multithread-Fähigkeit |
MT-Safe |
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.
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().
Weitere Informationen finden Sie in CWE-242 (aka »Use of Inherently
Dangerous Function«) auf
http://cwe.mitre.org/data/definitions/242.html
read(2),
write(2),
ferror(3),
fgetc(3),
fgets(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)
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother
<
[email protected]>, Martin Eberhard Schauer <
[email protected]>
und Mario Blättermann <
[email protected]> 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 die
Mailingliste
der Übersetzer