Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

fgets - Zeichenkette aus Datenstrom lesen

&pagelevel(4)&pagelevel

Definition

#include <stdio.h>

char *fgets(char *s, int n, FILE *stream);

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.

Returnwert

Zeiger auf die Ergebniszeichenkette



bei erfolgreicher Beendigung.


Nullzeiger

wenn der Datenstrom das Dateiende erreicht hat. Das Dateiendekennzeichen dieses Datenstroms wird gesetzt.


Nullzeiger

wenn ein Lesefehler auftritt. Das Fehlerkennzeichen des Datenstroms wird gesetzt. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

Siehe fgetc().

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.