fputwc(3S) fputwc(3S)
NAME
fputwc, putwc, putwchar - Wide-Character-Wert in einen Stream schrei-
ben
SYNTAX
cc [option ...] datei ... -lw [bibliothek ...]
#include <stdio.h>
#include <wchar.h>
wintt fputwc(wintt wc, FILE *stream);
wintt putwc(wintt wc, FILE *stream);
wintt putwchar(wintt wc);
BESCHREIBUNG
Die Funktion fputwc() schreibt das Zeichen, das dem Wide-Character-
Wert wc entspricht, in den Ausgabe-Stream, auf den stream zeigt. Das
Zeichen wird an die Position geschrieben, die durch den zugehörigen
Schreib-/Lesezeiger für den Stream angegeben ist (falls dieser defi-
niert wurde). Der Zeiger wird entsprechend weiterbewegt. Wenn die
Datei Positionierungsanforderungen nicht unterstützt oder der Stream
im Modus "Append" geöffnet wurde, wird das Zeichen an den Ausgabe-
Stream angehängt.
Die Funktion putwc() entspricht der Funktion fpuwc() mit dem Unter-
schied, daß sie, wenn sie als Makro implementiert wird, stream mehr-
mals evaluieren kann. Das Argument sollte niemals ein Ausdruck mit
Nebeneffekten sein. Die Funktion putwc() bearbeitet Stream-Argumente
mit Nebeneffekten unter Umständen nicht korrekt, da sie als Makro
implementiert werden kann. Insbesondere putwc(wc, *f++) funktioniert
vermutlich nicht wie erwartet. Daher wird die Verwendung dieser Funk-
tion nicht empfohlen. Statt dessen sollte fputwc() verwendet werden.
Der Funktionsaufruf putwchar(wc) entspricht putwc(wc, stdout).
Die Felder stctime und stmtime der Datei erhalten eine Kennzeichnung
zur Aktualisierung zwischen der erfolgreichen Ausführung von fputwc()
und der nächsten erfolgreichen Beendigung eines Aufrufs von fflush()
oder fclose() auf dem gleichen Stream oder einem Aufruf von exit()
oder abort().
FEHLER
Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
errno(5).
Die Funktion fputwc() schlägt fehl, wenn der Stream nicht gepuffert
ist oder Daten im Puffer des stream geschrieben werden müssen und eine
der folgenden Bedingungen vorliegt:
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
fputwc(3S) fputwc(3S)
EAGAIN Das Flag ONONBLOCK wird für den stream zugrundeliegenden
Dateideskriptor gesetzt. Es tritt für den Prozeß eine Verzö-
gerung bei der Schreiboperation ein.
EBADF Der dem stream zugrundeliegende Dateideskriptor ist kein
gültiger Dateideskriptor, der für das Schreiben geöffnet
ist.
EFBIG Es wurde versucht, in eine Datei zu schreiben, die die maxi-
male Dateigröße oder die Dateigrößenbegrenzung des Prozesses
überschreitet [siehe ulimit(2)].
EFBIG Die Datei ist eine reguläre Datei, und es wurde versucht,
Daten am oder über das Offset-Maximum hinaus zu schreiben,
das dem zugehörigen Stream zugeordnet ist.
EINTR Die Schreiboperation wurde aufgrund des Empfangs eines Sig-
nals beendet. Es wurden keine Daten übertragen.
EIO Ein physischer Ein-/Ausgabefehler ist aufgetreten, oder der
Prozeß ist Teil einer Prozeßgruppe im Hintergrund, die ver-
sucht, auf das steuernde Terminal zu schreiben. TOSTOP wird
gesetzt, weder ignoriert noch blockiert der Prozeß SIGTOU,
und die Prozeßgruppe des Prozesses ist verwaist. Dieser Feh-
ler kann auch aus implementierungsabhängigen Gründen gene-
riert werden.
ENOSPC Kein freier Bereich auf dem Gerät, das die Datei enthält.
EPIPE Es wird versucht, in eine Pipe oder FIFO zu schreiben, die
für keinen Prozeß zum Lesen geöffnet ist. Ein Signal SIGPIPE
wird auch an den Prozeß gesendet.
Die Funktion fgetwc() kann bei einer der folgenden Bedingungen fehl-
schlagen:
ENOMEM Nicht genügend Speicher verfügbar.
ENXIO Anforderung eines nicht existierenden Geräts bzw. Anforde-
rung jenseits der Leistungsgrenzen des Geräts.
EILSEQ Der Wide-Character-Wert wc entspricht keinem gültigen Zei-
chen.
ERGEBNIS
Bei erfolgreicher Beendigung gibt fputwc() wc zurück. Andernfalls wird
WEOF zurückgegeben, die Fehleranzeige für den Stream gesetzt, und
errno zur Anzeige des Fehlers gesetzt.
SIEHE AUCH
ferror(3S), fopen(3S), setbuf(3S), lfs(5), stdio(5), wchar(5).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98