gets(3) eine Zeichenkette aus der Standardeingabe holen (VERALTET)

ÜBERSICHT

#include <stdio.h>


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 Null-Byte ('\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.
SchnittstelleAttributWert
gets() Multithread-FähigkeitMT-Safe

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

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

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 4.06 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

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 <[email protected]>.