fgetwc(3S) fgetwc(3S)
NAME
fgetwc, getwc, getwchar - Wide-Character-Wert vom Stream lesen
SYNTAX
cc [option ...] datei ... -lw [bibliothek ...]
#include <stdio.h>
#include <wchar.h>
wintt fgetwc(FILE *stream);
wintt getwc(FILE *stream);
wintt getwchar(void);
BESCHREIBUNG
Die Funktion fgetwc() holt das nächste Zeichen (falls vorhanden) von
dem Eingabe-Stream, auf den stream zeigt, wandelt es in den entspre-
chenden Wide-Character-Wert um und bewegt den zugeordneten Schreib-
/Lesezeiger für den Stream weiter (falls dieser definiert wurde).
Wenn ein Fehler auftritt, ist der Wert des Schreib-/Lesezeigers für
den Stream nicht definiert. Die Funktionen ferror() bzw. feof() müssen
verwendet werden, um zwischen einer Fehlerbedingung und einer Datei-
ende-Bedingung zu unterscheiden.
Die Funktion getwc() entspricht der Funktion fgetwc() mit dem Unter-
schied, daß sie, wenn sie als Makro implementiert wird, stream mehr-
mals evaluieren kann. Das Argument sollte also niemals ein Ausdruck
mit Seiteneffekten sein. Insbesondere wird getwc(*f++) wahrscheinlich
nicht wie erwartet funktionieren. Daher wird die Verwendung dieser
Funktion nicht empfohlen. Statt dessen sollte die Funktion fgetwc()
verwendet werden.
Der Funktionsaufruf getwchar() entspricht getwc(stdin). Wenn der von
getwchar() zurückgegebene Wert in einer Variablen vom Typ wchart
abgelegt wird und dann mit dem wintt-Macro WEOF verglichen wird, ist
der Vergleich unter Umständen niemals erfolgreich.
Die Funktionen können das Feld statime der Datei, die dem Stream
zugeordnet ist, zur Aktualisierung kennzeichnen. Das Feld statime
erhält eine Kennzeichnung zur Aktualisierung durch die erste erfolg-
reiche Ausführung von fgetc(), fgetws(), fread(), fscanf(), getc(),
getchar(), gets() oder scanf() mit stream, die Daten zurückgibt, die
nicht von einem vorherigen Aufruf von ungetc() oder ungetwc() gelie-
fert werden.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
fgetwc(3S) fgetwc(3S)
FEHLER
Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
errno(5).
Die Funktion fgetwc() schlägt fehl, wenn Daten gelesen werden müssen
und:
EAGAIN Das Flag ONONBLOCK wird für den stream zugrundeliegenden
Dateideskriptor gesetzt. Es tritt für den Prozeß eine Ver-
zögerung bei der Operation fgetwc() ein.
EBADF Der dem Stream zugrundeliegende Dateideskriptor ist kein
gültiger Dateideskriptor, der für das Lesen geöffnet ist.
EINTR Die Leseoperation wurde aufgrund des Empfangs eines Sig-
nals beendet. Es wurden keine Daten übertragen.
EIO Ein E/A-Fehler trat während des Lesens oder Schreibens im
Dateisystem auf, oder der Prozeß ist in einer Hinter-
grund-Prozeßgruppe, die versucht, vom steuernden Terminal
zu lesen. Der Prozeß ignoriert oder blockiert das Signal
SIGTTIN, oder die Prozeßgruppe ist verwaist. Dieser Fehler
kann auch aus implementationsabhängigen Gründen generiert
werden.
EOVERFLOW Die Datei ist eine reguläre Datei, und es wurde versucht,
Daten am oder nach dem Offset-Maximum zu lesen, das dem
zugehörigen Stream zugeordnet ist.
Die Funktion fgetwc() kann fehlschlagen, wenn:
ENOMEM Nicht genügend Speicher verfügbar.
ENXIO Anforderung eines nicht existierenden Geräts bzw. Anforde-
rung jenseits der Leistungsgrenzen des Geräts.
EILSEQ Die Daten vom Eingabe-Stream ergeben kein gültiges Zei-
chen.
ERGEBNIS
Bei erfolgreicher Beendigung gibt die Funktion fgetwc() den Wide-
Character-Wert (Typ wintt) des Zeichens zurück, das von dem Eingabe-
Stream gelesen wurde, auf den stream zeigt. Wenn der Stream am Datei-
ende angelangt ist, wird die Dateiende-Anzeige für den Stream gesetzt.
fgetwc() gibt WEOF zurück. Wenn ein Lesefehler auftritt, wird die Feh-
leranzeige für den Stream gesetzt, fgetwc() gibt einen Nullzeiger
zurück und setzt errno auf den Fehler.
SIEHE AUCH
feof(3S), ferror(3S), fopen(3S), lfs(5), stdio(5), wchar(5).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98