gets(3)

BEZEICHNUNG
gets - eine Zeichenkette aus der Standardeingabe holen (VERALTET)

BIBLIOTHEK
Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT
#include <stdio.h>

[[veraltet]] char *gets(char *s);

BESCHREIBUNG
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).

RÜCKGABEWERT
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.

ATTRIBUTE
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
Schnittstelle | Attribut | Wert
gets() | Multithread-Fähigkeit | MT-Sicher

STANDARDS
POSIX.1-2008.

GESCHICHTE
C89, 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().

Weitere Informationen finden Sie in CWE-242 (aka »Use of Inherently Dangerous Function«) auf http://cwe.mitre.org/data/definitions/242.html

SIEHE AUCH
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)

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Mario Blättermann <mario.blaettermann@gmail.com> 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.