Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

fdopen - Dateizeiger einer Dateikennzahl zuweisen

&pagelevel(4)&pagelevel

Definition

#include <stdio.h>

FILE *fdopen(int dk, const char *art);

fdopen weist der bereits mit open/open64 oder creat/creat64 geöffneten Datei (mit Dateikennzahl dk) einen Dateizeiger zu.
Nach einem fdopen-Aufruf kann die Datei auch mit den Funktionen aus der StandardEin-/Ausgabebibliothek bearbeitet werden (fread, fputc, fprintf etc.).

Parameter

int dk

Dateikennzahl, die durch einen creat/creat64- oder open/open64-Aufruf zugewiesen wurde.

const char *art

Zeichenkette, die die Zugriffsart angibt (siehe bei fopen/fopen64). Der Parameter wird nicht ausgewertet. Die Datei behält die ursprüngliche Zugriffsart, die bei open/open64 bzw. creat/creat64 angegeben wurde, d.h. eine Änderung der Zugriffsart mit fdopen ist nicht möglich. Auch die optionalen Zusatzangaben im Parameter art werden nicht ausgewertet.

Returnwert

Dateizeiger auf die zugewiesene FILE-Struktur

bei Erfolg.

Hinweis

Treten Fehler auf, z.B. eine ungültige Dateikennzahl, liefert fdopen weder ein definiertes Ergebnis noch eine Fehlermeldung. Das Programm bricht auch nicht ab!

Beispiel

Folgendes Program öffnet die Datei dat für elementare und für Standard-Ein-/Ausgabeoperationen.

#include <stdio.h>
#include <stdlib.h>
FILE *fp;
int fd;
char buf[10];
int c;
int main(void)
{
   int n;
               /* zuerst mit Dateikennzahl arbeiten */
   if((fd = open("dat",2)) < 0)
     {
        perror("open");
        exit(1);
     }
   if((n = read(fd,buf,10)) > 0)
      write(1,buf,n);
               /* Dateizeiger mit Dateikennzahl verbinden */
   fp = fdopen(fd,"w");
   while((c = getchar()) != EOF)
        putc(c,fp);
   fclose(fp);
   return 0;
 }

Siehe auch  creat, creat64, fclose, fseek, fseek64, fopen, fopen64, freopen, freopen64, open, open64