Definition | #include <wchar.h> Optional #include <stdio.h> (Ende) wint_t fgetwc(FILE *stream); |
Beschreibung | fgetwc() liest das nächste Zeichen aus dem Eingabestrom, auf den stream zeigt, wandelt es in den entsprechenden Langzeichenwert um und bewegt den Lese-/Schreibzeiger für den Datenstrom, falls definiert, weiter.
Wenn ein Fehler auftritt, ist der Wert des Lese-/Schreibzeigers für den Datenstrom nicht definiert. fgetwc() 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.
Einschränkung In dieser Version des C-Laufzeitsystems werden nur 1-Byte-Zeichen als Langzeichen unterstützt. Sie sind vom Typ wchar_t (siehe stddef.h ). (Ende) |
Returnwert | Langzeichenwert vom Typ wint_t |
|
| bei erfolgreicher Beendigung. |
| WEOF
| wenn der Datenstrom am Dateiende angelangt ist. Das Dateiendekennzeichen für den Datenstrom wird gesetzt. |
| WEOF
| wenn ein Lesefehler auftritt. Die Fehleranzeige für den Datenstrom wird gesetzt. errno wird gesetzt, um den Fehler anzuzeigen. |
Fehler | fgetwc() schlägt fehl, wenn gilt:
|
| EAGAIN
| Das Flag O_NONBLOCK wird für den Dateideskriptor gesetzt, der stream zu Grunde liegt, und der Prozess würde durch fgetwc() angehalten werden. |
| EBADF
| Der stream zu Grunde liegende Dateideskriptor ist kein gültiger, für das Lesen geöffneter Dateideskriptor |
| EINTR
| Die Leseoperation wurde durch den Empfang eines Signals beendet. Es wurden keine Daten übertragen. |
| Erweiterung |
| EINVAL
| Es wurde versucht, auf eine BS2000-Datei zuzugreifen. (Ende) |
| EIO
| Der Prozess ist Mitglied in einer Hintergrund-Prozessgruppe und versucht, von seinem steuernden Terminal zu lesen. Das Signal SIGTTIN wird vom Prozess entweder blockiert oder ignoriert, oder die Prozessgruppe ist verwaist. |
Hinweise | In dieser Version des Laufzeitsystems werden die Langzeichen-Funktionen nur für POSIX-Dateien unterstützt. ferror() bzw. feof() müssen verwendet werden, um zwischen einer Fehlerbedingung und einer Dateiendebedingung zu unterscheiden.
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. (Ende) |
Siehe auch | feof() , ferror() , fgetc() , fopen() , stdio.h , wchar.h .
|