fopen(3S-ucb) (BSD Compatibility Package) fopen(3S-ucb)
NAME
fopen, freopen - Strom öffnen
SYNTAX
/usr/ucb/cc [flag ...] file ... -lucb
#include <stdio.h>
FILE *fopen(filename, type)
char *filename, *type;
FILE *freopen(filename, type, stream)
char *filename, *type;
FILE *stream;
BESCHREIBUNG
fopen öffnet die durch filename angegebene Datei und ordnet ihr einen
Strom zu. Wird die Datei erfolgreich geöffnet, gibt fopen einen Zeiger
zurück, der zur Identifizierung des Stroms in nachfolgenden Operatio-
nen verwendet wird.
filename zeigt auf eine Zeichenkette, die den Namen der zu öffnenden
Datei enthält.
type ist eine Zeichenkette aus einem der folgenden Werte:
r Datei zum Lesen öffnen.
w Datei zum Schreiben abschneiden oder erstellen.
a Anhängen; Datei zum Schreiben am Dateiende (EOF) öffnen oder
zum Schreiben erstellen.
r+ Datei zum Aktualisieren (Lesen und Schreiben) öffnen.
w+ Datei zum Aktualisieren abschneiden oder erstellen.
a+ Anhängen; Datei zum Aktualisieren am Dateiende (EOF) öffnen
oder erstellen.
freopen öffnet die durch filename angegebene Datei und ordnet ihr den
Strom zu, auf den stream zeigt. Das Argument type wird in derselben
Weise wie in fopen verwendet. Der ursprüngliche Strom wird geschlos-
sen, unabhängig davon, ob das Öffnen der Datei erfolgreich war. Wird
die Datei erfolgreich geöffnet, gibt freopen den ursprünglichen Wert
von stream zurück.
freopen wird normalerweise verwendet, um die vorab geöffneten Ströme,
die stdin, stdout und stderr zugeordnet sind, an andere Dateien anzu-
hängen.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
fopen(3S-ucb) (BSD Compatibility Package) fopen(3S-ucb)
Wenn eine Datei zum Aktualisieren geöffnet wird, sind sowohl Ein- als
auch Ausgabe auf dem sich ergebenden Strom zulässig. Der Ausgabe darf
allerdings keine direkte Eingabe ohne ein zwischengestelltes fseek
oder rewind folgen, und der Eingabe darf keine direkte Ausgabe ohne
zwischengestelltes fseek, rewind oder einer Eingabeoperation, die auf
ein Dateiende EOF trifft, folgen.
RÜCKGABEWERT
fopen und freopen geben bei einem Fehler einen NULL-Zeiger zurück.
HINWEISE
fopen unterscheidet sich von der Bibliotheksroutine gleichen Namens im
Basissystem nur durch die Schnittstelle.
Damit die gleiche Anzahl offener Dateien wie auch vom System unter-
stützt werden kann, muß fopen mit Hilfe von calloc zusätzlichen Spei-
cher für Datenstrukturen zuordnen, nachdem 64 Dateien geöffnet wurden.
Dies kann bei einigen Programmen, die eigene Speicherzuordnungsrouti-
nen verwenden, zu Komplikationen führen.
SIEHE AUCH
open(2), pipe(2), malloc(3C), fclose(3S), fopen(3S), fseek(3S),
stdio(5).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98