Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ putc(3S) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

exit(2)

lseek(2)

write(2)

abort(3C)

fclose(3S)

ferror(3S)

fopen(3S)

fread(3S)

printf(3S)

puts(3S)

setbuf(3S)

stdio(3S)

lfs(5)

stdio(5)

putc(3S)                                                           putc(3S)

NAME
     putc, putchar, fputc, putw - Zeichen/Wort auf einen Stream ausgeben

SYNTAX
     #include <stdio.h>

     int putc(int c, FILE *stream);

     int putchar(int c);

     int fputc(int c, FILE *stream);

     int putw(int w, FILE *stream);

BESCHREIBUNG
     putc() schreibt das Byte c (umgeformt zu einem unsigned char) in die
     Ausgabedatei stream an die Stelle, auf die der Schreib-/Lesezeiger,
     sofern er definiert ist, zeigt und positioniert den Schreib-/Lese-
     zeiger an die entsprechende Stelle. Wenn die Datei Positionierungsan-
     forderungen nicht unterstützt, oder wenn stream mit dem Modus für
     Anhängen (Append) geöffnet wurde, wird das Byte an das Ende der Aus-
     gabe angehängt. putchar(c) ist als putc(c, stdout) definiert. putc()
     und putchar() sind Makros.

     fputc() verhält sich wie putc(), ist jedoch eine Funktion und kein
     Makro. fputc() läuft langsamer als putc(), beansprucht jedoch weniger
     Speicherplatz pro Aufruf, und der Name kann als Argument an eine Funk-
     tion übergeben werden.

     putw() schreibt das Wort (int) w in die Ausgabedatei stream, auf die
     der Schreib-/Lesezeiger, sofern definiert, zeigt. Die Größe eines
     Worts ist die maschinenspezifische Größe von int. putw() setzt keine
     besondere Ausrichtung in der Datei voraus und bewirkt diese auch
     nicht.

FEHLER
     Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
     Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
     errno(5).

     Die Funktion schlägt fehl, wenn entweder der Datenstrom nicht gepuf-
     fert ist oder der Puffer des Datenstroms geleert werden mußte; ferner
     wenn:

     EAGAIN    Für den Dateideskriptor ist das ONONBLOCK-Flag gesetzt, und
               der Prozeß wird beim Schreiben verzögert.

     EBADF     Der Dateideskriptor, der sich auf stream bezieht, ist kein
               für das Schreiben gültiger Dateideskriptor.






Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

putc(3S)                                                           putc(3S)

     EFBIG     Es wurde versucht, in eine Datei zu schreiben, wobei die
               maximale Dateigröße oder die durch den Prozeß vorgegebene
               Dateigröße überschritten wurde.

     EFBIG     Die Datei ist eine reguläre Datei, und es wurde versucht,
               bis hin oder über den maximalen Offset hinaus zu schreiben,
               der dem entsprechenden Datenstrom zugeordnet ist.

     EINTR     Das Schreiben wurde durch den Empfang eines Signals unter-
               brochen, und es wurden keine Daten übertragen.

     EIO       Ein physischer Ein-/Ausgabe-Fehler ist aufgetreten, oder der
               Prozeß gehört zu einer Prozeßgruppe im Hintergrund und ver-
               sucht, auf sein Steuerungsterminal zu schreiben. TOSTOP ist
               gesetzt, SIGTTOU wird vom Prozeß weder ignoriert noch blok-
               kiert, und die Prozeßgruppe des Prozesses ist verwaist. Die-
               ser Fehler kann auch abhängig von der jeweiligen Implemen-
               tierung auftreten.

     ENOSPC    Es ist kein freier Platz auf dem Datenträger mehr vorhanden.

     EPIPE     Es wurde versucht, in eine Pipe oder FIFO-Datei zu schrei-
               ben, die nicht zum Lesen geöffnet ist. Ein SIGPIPE-Signal
               wird an den Prozeß gesendet.

     Die Funktion fputc() schlägt bei folgenden Bedingungen fehl:

     ENOMEM    Nicht genügend Speicherplatz verfügbar.

     ENXIO     Es liegt eine Anforderung eines nicht vorhandenen Geräts
               vor, oder die Anforderung ging über die Leistungsgrenzen des
               Gerätes hinaus.

ERGEBNIS
     Wenn diese Funktionen erfolgreich sind, gibt jede den von ihr
     geschriebenen Wert zurück (mit Ausnahme von putw()). putw() gibt
     ferror(stream) zurück. Andernfalls geben sie die Konstante EOF zurück.
     Dieses Verhalten tritt zum Beispiel auf, wenn die Datei stream nicht
     zum Schreiben geöffnet ist, oder wenn die Ausgabedatei nicht mehr ver-
     größert werden kann.

HINWEISE
     Da putc() als Makro implementiert ist, kann stream mehr als einmal
     ausgewertet werden. Falls stream also ein Ausdruck mit Nebeneffekten
     ist, wird er von putc() nicht korrekt verarbeitet. Insbesondere
     putc(c, *f++) verhält sich nicht wie erwartet. Verwenden Sie in diesem
     Fall fputc().

     Aufgrund der möglichen Unterschiede in Wortlänge und Bytefolge sind
     die unter Verwendung von putw() geschriebenen Dateien maschinenabhän-
     gig und können möglicherweise nicht mit getw() auf einem anderen Pro-
     zessor gelesen werden.


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

putc(3S)                                                           putc(3S)

     Funktionen existieren für alle oben definierten Makros. Um die ent-
     sprechende Funktion aufzurufen, muß der Makroname undefiniert sein
     (z. B. durch #undef putc).

SIEHE AUCH
     exit(2), lseek(2), write(2), abort(3C), fclose(3S), ferror(3S),
     fopen(3S), fread(3S), printf(3S), puts(3S), setbuf(3S), stdio(3S),
     lfs(5), stdio(5).














































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026