Provided by: manpages-de-dev_0.5-2ubuntu1_all bug

BEZEICHNUNG

       fopen, fdopen, freopen - Funktionen zum Öffnen von Streams

ÜBERSICHT

       #include <stdio.h>

       FILE *fopen( char *path, char *mode);
       FILE *fdopen( int fildes, char *mode);
       FILE *freopen( char *path, char *mode, FILE *stream);

BESCHREIBUNG

       Die  Funktion  fopen  öffnet die Datei, dessen Name der String ist, auf
       den path zeigt, und verbindet einen Stream damit.

       Das Argument mode zeigt auf einen String, der mit einer  der  folgenden
       Sequenzen   beginnt   (Zusätzliche   Zeichen  dürfen  diesen  Sequenzen
       folgen.):

       r      Öffne  die  Textdatei  zum  Lesen.   Der  Stream  wird  auf  den
              Dateianfang positioniert.

       r+     Öffne  die  Textdatei  zum Lesen und Schreiben.  Der Stream wird
              auf den Dateianfang positioniert.

       w      Verkürze  die  Datei  auf  die  Länge  Null  oder  erzeuge  eine
              Textdatei  zum  Schreiben.   Der Stream wird auf den Dateianfang
              positioniert.

       w+     Öffne die  Datei  zum  Lesen  und  Schreiben.   Die  Datei  wird
              erzeugt, wenn sie nicht existiert, ansonsten abgeschnitten.  Der
              Stream wird auf den Dateianfang positioniert.

       a      Öffne die Datei zum Schreiben.  Die Datei wird erzeugt, wenn sie
              nicht   existiert.    Der   Stream   wird   auf   das  Dateiende
              positioniert.

       a+     Öffne zum Lesen und Schreiben.  Die Datei wird erzeugt, wenn sie
              nicht   existiert.    Der   Stream   wird   auf   das  Dateiende
              positioniert.

       Der String mode kann auch das Zeichen ‘‘b’’ enthalten, entweder als ein
       drittes  Zeichen  oder  als ein Zeichen in einem der oben beschriebenen
       Zwei-Zeichen-Strings.       Dies      ist      ausschließlich       Aus
       Kompatibilitätsgründen  zu ANSI C3.159-1989 (‘‘ANSI C’’) und hat keinen
       Effekt; das ‘‘b’’ wird ignoriert.  Linux verhält sich evtl. nicht so.

       Jede        erzeugte        Datei         hat         den         Modus
       S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH   (0666),   modifiziert
       durch den umask-Werk des Prozesses (siehe umask(2).

       Lese- und Schreibzugriffe dürfen in Schreib-/lese -  Streams  in  jeder
       Reihenfolge    gemischt    verwendet    werden   und   benötigen   kein
       zwischenzeitliches seek wie in früheren Versionen  von  stdio.   Dieses
       Verhalten ist nicht portabel mit anderen Systemen, und muss unter Linux
       nicht funktionieren (irgendjemand sollte das testen und  diese  Manpage
       berichtigen);    ANSI    C    verlangt,    dass    eine    Dateizeiger-
       Positionierfunktion zwischen Aus- und Eingabe aufgerufen wird,  solange
       nicht eine Eingabeoperation ein Dateiende vorfindet.

       Die  Funktion  fdopen  verbindet  einen  Stream mit einem existierenden
       Dateideskriptor fildes.  Der mode des Stream  muss  kompatibel  zu  dem
       Modus  des  Dateideskriptors  sein.  Der Dateideskriptor wird nicht ge-
       dup’t.

       Die Funktion freopen öffnet eine Datei, deren Name der String ist,  auf
       den  path zeigt, und verbindet den Stream, auf den stream zeigt, damit.
       Der  originale  Stream  (wenn  er  existiert)  wird  geschlossen.   Das
       Argument  mode  wird  genauso  wie  in der Funktion fopen benutzt.  Der
       primäre Nutzen der Funktion freopen ist es, die Datei  zu  ändern,  die
       mit  einem  standard Text-Stream (stderr, stdin, oder stdout) verbunden
       ist.

RÜCKGABEWERT

       Bei erfolgreicher Beendigung geben  fopen,  fdopen  und  freopen  einen
       Dateideszeiger  FILE  zurück.  Anderenfalls wird NULL zurückgegeben und
       die globale Variable errno gesetzt um den Fehler anzuzeigen.

FEHLER

       EINVAL Der mode für fopen, fdopen, oder freopen war ungültig.

       Die Funktionen fopen, fdopen und freopen können auch  fehlschlagen  und
       errno  setzen  für  Fehler,  die für die Routine malloc(3) spezifiziert
       sind.

       Die Funktion fopen kann auch fehlschlagen und errno für Fehler, die für
       die Routine open(2) spezifiziert sind, setzen.

       Die  Funktion  fdopen  kann auch fehlschlagen und errno für Fehler, die
       für die Routine fcntl(2) spezifiziert sind, setzen.

       Die Funktion freopen kann auch fehlschlagen und errno für  Fehler,  die
       für  die  Routinen  open(2), fclose(3) und fflush(3) spezifiziert sind,
       setzen.

SIEHE AUCH

       open(2), fclose(3).

STANDARDS

       Die Funktionen fopen und  freopen  sind  konform  zu  ANSI  C3.159-1989
       (‘‘ANSI  C’’).   Die Funktion fdopen ist konform zu IEEE Std1003.1-1988
       (‘‘POSIX’’).