Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fread(3S) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

exit(2)

lseek(2)

read(2)

write(2)

abort(3C)

fclose(3S)

fopen(3S)

getc(3S)

gets(3S)

printf(3S)

putc(3S)

puts(3S)

scanf(3S)

stdio(3S)

lfs(5)

stdio(5)

fread(3S)                                                         fread(3S)

NAME
     fread, fwrite - Binäre Ein-/Ausgabe

SYNTAX
     #include <stdio.h>

     sizet fread(void *ptr, sizet size, sizet nitems, FILE *stream);

     sizet fwrite(const void *ptr, sizet size, sizet nitems, FILE *stream);

BESCHREIBUNG
     fread() liest bis zu nitems Einheiten von stream in ein Feld, auf das
     ptr zeigt, wobei eine Dateneinheit eine Folge von Bytes der Länge size
     ist. Diese Folge von Bytes wird nicht notwendigerweise durch ein
     Null-Byte beendet. fread() hört mit dem Lesen auf, wenn beim Lesen von
     stream ein Dateiende-Zeichen oder eine Fehlerbedingung angetroffen
     wird oder nitems Einheiten gelesen worden sind. fread() erhöht den
     Schreib-/Lesezeiger in stream, so daß er auf das Byte hinter dem
     zuletzt gelesenen Byte zeigt, sofern es ein solches gibt. fread()
     ändert den Inhalt von stream nicht. fread() gibt die Anzahl der gele-
     senen Einheiten zurück. Der Rückgabewert ist nur dann kleiner als
     nitems, wenn ein Lesefehler oder ein EOF auftritt.

     fwrite() schreibt auf die angegebene Ausgabe stream höchstens nitems
     Dateneinheiten aus dem Feld, auf das ptr zeigt, wobei eine Einheit
     eine Folge von Bytes der Länge size ist. Diese Folge von Bytes wird
     nicht notwendigerweise mit einem Null-Byte beendet. fwrite() hört auf
     zu schreiben, wenn es nitems Dateneinheiten geschrieben hat oder wenn
     auf dem stream eine Fehlerbedingung angetroffen wurde. fwrite() ändert
     nicht den Inhalt des Feldes, auf das ptr zeigt. fwrite() erhöht den
     Schreib-/Lesezeiger in stream um die Anzahl der geschriebenen Bytes.
     fwrite() gibt die Anzahl der geschriebenen Dateneinheiten zurück.

     Wenn size oder nitems null ist, geben fread() und fwrite() den Wert 0
     zurück. Der Inhalt des Feldes, auf das ptr zeigt, und der Zustand von
     stream bleiben unverändert.

     Die Routinen ferror() oder feof() müssen verwendet werden, um zwischen
     Fehlerbedingungen und Dateiende zu unterscheiden.

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

     Die Funktion fread() schlägt fehl, wenn:

     EAGAIN      Das Flag ONONBLOCK für den Dateideskriptor, der stream
                 zugrundeliegt, ist gesetzt, und der Prozeß wurde beim
                 Lesevorgang verzögert.





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

fread(3S)                                                         fread(3S)

     EBADF       Der Dateideskriptor, der stream zugrundeliegt, ist kein
                 gültiger Dateideskriptor, der zum Lesen geöffnet ist.

     EINTR       Infolge eines Signals wurde die Leseoperation beendet, und
                 es wurden keine Daten übertragen.

     EIO         Ein physischer Ein-/Ausgabefehler ist aufgetreten, oder
                 der Prozeß gehört zu einer Hintergrundprozeßgruppe, welche
                 von dem kontrollierenden Terminal zu lesen versucht. Ent-
                 weder ignoriert oder blockiert der Prozeß das Signal
                 SIGTTIN, oder die Prozeßgruppe des Prozesses ist verwaist.
                 Dieser Fehler kann auch unter implementationsabhängigen
                 Bedingungen gemeldet werden.

     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 fread() kann fehlschlagen, falls:

     ENOMEM      Es ist nur unzureichend Speicherplatz vorhanden.

     ENXIO       Es wurde eine Anforderung an ein nicht-existierendes Gerät
                 gemacht bzw. die Anforderung ist außerhalb der Möglichkei-
                 ten des Geräts.

     Die Funktion fwrite() schlägt fehl, wenn:

     EAGAIN      Das Flag ONONBLOCK für den Dateideskriptor, der stream
                 zugrundeliegt, ist gesetzt, und der Prozeß wurde beim
                 Schreibvorgang verzögert.

     EBADF       Der Dateideskriptor, der stream zugrundeliegt, ist kein
                 gültiger Dateideskriptor, der zum Schreiben geöffnet ist.

     EFBIG       Es wurde versucht, in eine Datei zu schreiben, deren Größe
                 die maximale Dateigröße oder die maximale Dateigröße des
                 Prozesses überschreitet.

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

     EINTR       Infolge eines Signals wurde die Schreiboperation beendet,
                 und es wurden keine Daten übertragen.









Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

fread(3S)                                                         fread(3S)

     EIO         Ein physischer Ein-/Ausgabefehler ist aufgetreten, oder
                 der Prozeß gehört zu einer Hintergrundprozeßsgruppe, wel-
                 che auf das kontrollierende Terminal zu schreiben ver-
                 sucht. TOSTOP ist gesetzt, weder ignoriert noch blockiert
                 der Prozeß SIGTTOU, und die Prozeßgruppe des Prozesses ist
                 verwaist. Dieser Fehler kann auch unter implementationsab-
                 hängigen Bedingungen gemeldet werden.

     ENOSPC      Es war kein freier Platz auf dem Gerät, das die Datei ent-
                 hält, mehr übrig.

     EPIPE       Es wurde versucht, auf eine Pipe oder FIFO zu schreiben,
                 die für keinen Prozeß leseberechtigt ist. Es wird auch ein
                 Signal SIGPIPE zum Prozeß gesendet.

     Die Funktion fwrite() kann fehlschlagen, falls:

     ENOMEM      Es ist nur unzureichend Speicherplatz vorhanden.

     ENXIO       Es wurde eine Anforderung an ein nicht-existierendes Gerät
                 gemacht bzw. die Anforderung ist außerhalb der Möglichkei-
                 ten des Geräts.

ERGEBNIS
     Wenn ein Fehler auftritt, wird die Fehleranzeige für stream gesetzt.

SIEHE AUCH
     exit(2), lseek(2), read(2), write(2), abort(3C), fclose(3S),
     fopen(3S), getc(3S), gets(3S), printf(3S), putc(3S), puts(3S),
     scanf(3S), stdio(3S), lfs(5), stdio(5).
























Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

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