Scroll to navigation

gets(3) Library Functions Manual 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

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

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

5. Februar 2023 Linux man-pages 6.03