Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ getc(3S) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fclose(3S)

ferror(3S)

fopen(3S)

fread(3S)

gets(3S)

putc(3S)

scanf(3S)

stdio(3S)

ungetc(3S)

lfs(5)

stdio(5)

getc(3S)                                                           getc(3S)

NAME
     getc, getchar, fgetc, getw - Zeichen/Wort aus Stream lesen

SYNTAX
     #include <stdio.h>

     int getc(FILE *stream);

     int getchar(void);

     int fgetc(FILE *stream);

     int getw(FILE *stream);

BESCHREIBUNG
     getc() gibt das nächste Zeichen (d. h. Byte) als Zeichen ohne Vorzei-
     chen (unsigned char) aus der angegebenen Eingabedatei stream umgewan-
     delt in eine Ganzzahl int zurück. Es setzt auch den Schreib-/Lese-
     zeiger, sofern dieser definiert ist, um ein Zeichen in stream weiter.
     getchar() ist als getc(stdin) definiert. getc() und getchar() sind
     Makros.

     fgetc() verhält sich wie getc(), ist jedoch eine Funktion und kein
     Makro. fgetc() läuft langsamer als getc(), beansprucht jedoch auch
     weniger Speicherplatz pro Aufruf und sein Name kann als Argument für
     eine Funktion verwendet werden.

     getw() liefert das nächste Wort (d. h. eine Ganzzahl) von der angege-
     benen Eingabedatei stream. getw() erhöht den zugehörigen Schreib-
     /Lesezeiger (sofern definiert), so daß dieser auf das nächste Wort
     zeigt. Die Größe eines Wortes ist die Größe einer Zahl vom Typ int.
     Sie ist bei den einzelnen Rechnern unterschiedlich. getw() setzt keine
     besondere Ausrichtung in der Datei voraus.

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

     Die Funktionen schlagen bei folgenden Bedingungen fehl:

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

     EBADF       Der Dateideskriptor von stream ist kein zum Lesen geöffne-
                 ter Dateideskriptor.

     EINTR       Das Lesen wurde durch den Empfang eines Signals unterbro-
                 chen, und es wurden keine Daten übertragen.






Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

getc(3S)                                                           getc(3S)

     EIO         Ein physischer Ein-/Ausgabefehler ist aufgetreten, oder
                 der Prozeß ist Teil einer Hintergrundprozeßgruppe, die
                 versucht, vom steuernden Terminal zu lesen. Entweder igno-
                 riert oder blockiert der Prozeß das SIGTTIN-Signal, oder
                 die Prozeßgruppe ist verwaist. Dieser Fehler kann auch aus
                 implementierungsabhängigen Gründen auftreten.

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

     Die Funktion fgetc() kann bei folgenden Bedingungen fehlschlagen:

     ENOMEM      Es ist 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
     Diese Funktionen geben am Ende der Datei oder bei einem Fehler die
     Konstante EOF zurück und setzen je nachdem EOF oder die Fehleranzeige
     von stream. Da EOF eine gültige ganze Zahl ist, sollte zur Ermittlung
     von Fehlern ferror() oder feof() verwendet werden.

HINWEISE
     Wenn der von getc(), getchar() oder fgetc() zurückgegebene ganzzahlige
     Wert in einer Variablen vom Typ char gespeichert und dann mit der
     ganzzahligen Konstanten EOF verglichen wird, ist dieser Vergleich mög-
     licherweise nie erfolgreich, weil die Vorzeichenpropagierung beim
     Übergang von char zu int implementierungsabhängig ist.

     Die Makroversion von getc() wertet das stream-Argument mehr als einmal
     aus und könnte Nebeneffekte falsch behandeln. So arbeitet insbesondere
     getc(*f++) nicht sinnvoll. Verwenden Sie statt dessen fgetc().

     Wegen der möglichen Unterschiede in Wortlänge und Byteordnung sind die
     unter Verwendung von putw() geschriebenen Dateien implementierungsab-
     hängig und können möglicherweise nicht mit getw() auf einem anderen
     Prozessor gelesen werden. Für alle oben definierten Makros gibt es
     Funktionen. Um die Funktionsform zu erhalten, muß die Definition des
     Makronamens rückgängig gemacht werden (d. h. #undef getc).

SIEHE AUCH
     fclose(3S), ferror(3S), fopen(3S), fread(3S), gets(3S), putc(3S),
     scanf(3S), stdio(3S), ungetc(3S), lfs(5), stdio(5).








Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

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