Beschreibung | fgets() liest aus dem Datenstrom, auf den stream zeigt, höchstens n-1 Bytes bis zum Zeilenendezeichen oder bis zum Dateiende. Die eingelesene Zeichenkette wird in den Vektor eingetragen, auf den s zeigt, und mit dem Nullbyte beendet.
fgets() kann die Strukturkomponente st_atime für die Datei, der stream zugeordnet ist, zum Ändern markieren (siehe sys/stat.h ). Die Strukturkomponente st_atime wird aktualisiert, sobald fgetc() , fgets() , fgetwc() , fgetws() , fread() , fscanf() , getc() , getchar() , gets() oder scanf() erfolgreich für stream aufgerufen werden und Daten zurückliefern, die nicht durch einen vorangegangenen Aufruf von ungetc() oder ungetwc() bereitgestellt wurden.
|
Hinweise | Der Bereich, in den fgets() die gelesene Zeichenkette abspeichern soll, muss explizit bereitgestellt werden. Im Unterschied zu gets() trägt fgets() auch ein gelesenes Zeilenendezeichen in die Ergebniszeichenkette ein. BS2000 Bei Textdateien mit der Zugriffsart SAM und variabler Satzlänge, für die zusätzlich eine maximale Satzlänge angegeben ist, gilt: Wenn bei fopen() die Angabe split=no gemacht wurde, werden Sätze maximaler Länge beim Lesen nicht mit dem darauffolgenden Satz verkettet. Standardmäßig oder mit der Angabe split=yes wird beim Lesen eines Satzes mit maximaler Satzlänge angenommen, dass es sich bei dem Folgesatz um die Fortsetzung dieses Satzes handelt, und die Sätze werden verkettet. Bei Textdateien mit der Zugriffsart SAM oder ISAM schließt fgets() die gelesene Zeichenkette am Ende eines Satzes durch ein zusätzliches Neue-Zeile-Zeichen ab. In diesem Fall liefert ein anschließender Aufruf von _fnlinserted() einen Wert ungleich 0. In allen anderen Fällen liefert ein anschließender Aufruf von _fnlinserted() den Wert 0. (Ende) Ob fgets() für eine BS2000- oder eine POSIX-Datei ausgeführt wird, hängt von der Programmumgebung ab. |
Siehe auch | fgetc() , _fnlinserted() , fopen() , fputs() , fread() , gets() , stdio.h , sys/stat.h .
|