Warum ist der fgets-Funktion veraltet?

Vom Der GNU-C-Programmierung Tutorial:

Den fgets ("file get string") - Funktion ist ähnlich wie die bekommt
Funktion. Diese Funktion ist veraltet -- das bedeutet, dass es veraltet ist
und es ist dringend empfohlen, Sie verwenden Sie es nicht, -- denn es ist
gefährlich. Es ist gefährlich, weil, wenn die Eingabedaten eine null
Charakter, kann man nicht sagen. Verwenden Sie nicht fgets es sei denn, Sie wissen, die Daten
nicht enthalten den Wert null. Verwenden Sie es nicht zum Lesen von Dateien, die vom Benutzer bearbeitet
weil, wenn der Benutzer fügt ein null-Zeichen, sollten Sie entweder
behandeln Sie es richtig, oder drucken Sie eine klare Fehlermeldung. Verwenden Sie immer
getline oder getdelim statt fgets wenn Sie können.

Ich dachte, die fgets Funktion Stoppt, wenn es auf eine \0 oder \n; warum dieses Handbuch Seite schlagen Sie ein null-byte ist "gefährlich", wenn fgets sollten die Eingaben verarbeiten, richtig? Außerdem, was ist der Unterschied zwischen getline und fgets, und ist die fgets Funktion wirklich als veraltet in der C99 oder zukünftigen C-Normen?

InformationsquelleAutor Vilhelm Gray | 2013-05-01

Schreibe einen Kommentar