Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

gets - Zeichenkette aus Standard-Eingabestrom lesen

&pagelevel(4)&pagelevel

Definition

#include <stdio.h>

char *gets(char *s);

Beschreibung

gets() liest Zeichen aus dem Standard-Eingabestrom, bis ein Zeilenendezeichen oder das Dateiende erreicht wird. Die gelesene Zeichenkette wird in den Vektor eingetragen, auf den s zeigt. Ein Zeilenendezeichen wird durch das Nullbyte überschrieben.

gets() 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. gets() schließt die Zeichenkette mit dem Nullbyte ab.


Nullzeiger

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

Wenn ein Lesefehler auftritt, wird das Fehlerkennzeichen des Datenstroms gesetzt. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

Siehe fgetc().

Hinweise

Das Lesen einer Zeile, die die Länge des Vektors s überschreitet, liefert undefinierte Ergebnisse. Die Verwendung von fgets() wird empfohlen.

Wenn gets() in der POSIX-Umgebung von stdin liest und EOF das Einlese-Endekriterium ist, erreicht man die EOF-Bedingung durch folgende Maßnahmen:

> am blockorientierten Terminal durch Eingabe der Tastensequenz [@][@][d]

> am zeichenorientierten Terminal durch Eingabe von [CTRL]+[D]

BS2000
Wenn fgetc() in der BS2000-Umgebung von stdin liest und EOF das Einlese-Endekriterium ist, erreicht man die EOF-Bedingung durch folgende Maßnahmen am Terminal:

  1. [K2] drücken.

  2. Die Systemkommandos EOF und RESUME-PROGRAM eingeben.

Ob gets() für eine BS2000- oder eine POSIX-Datei ausgeführt wird, hängt von der Programmumgebung ab.

Siehe auch

feof(), ferror(), fgets(), stdio.h.