ein Kapitel zurück                                           ein Kapitel weiter

Benötigen sie von einer offenen Datei, einen Stream, den dazugehörenden Filedeskriptor so steht Ihnen die Funktion.....

#include 

int fileno(FILE *fz);

...zur Verfügung. fileno wird benötigt, falls sie Dateien mit fopen geöffnet haben, um sie zu Funktionen einzusetzen die einen Filedeskriptor benötigen.(z.B. Funktionen wie dup(), dup2() oder fcntl() ) Hier ein Programmbeispiel.....

/*Download:fileno.c*/
#include <stdio.h> #ifdef _unix_ #inlcude <unistd.h> #else #include <io.h> #endif int main() { FILE *fz; int fd,fd2; char datei[255]; printf("Filedeskriptoren zu stdin, stdout und stderr : "); printf("%d, %d und %d\n",fileno(stdin),fileno(stdout),fileno(stderr)); printf("Welche Datei wollen sie oeffnen : "); scanf("%s",datei); fz=fopen(datei, "r"); if(!fz) perror(NULL); fd = fileno(fz); printf("Der Filedeskriptor zur Datei %s lautet %d\n",datei,fd); fd2=dup(fd); printf("Der Filedeskriptor der mit dup() kopiert wurde lautet %d\n",fd2); return 0; }

Zu Beginn des Programms werden erst die Filedeskriptoren zu stdin, stdout und stderr ausgegeben, was fast immer 0,1 und 2 sein dürften. Anschließend wird der Filedeskriptor eine von Ihnen gewünschten zu öffnenden Datei ausgegeben. Diesen Duplizieren wir mit der Funktion dup, die ja einen Filedeskriptor benötigt, und geben diesen dann ebenfalls auf dem Bildschirm aus.

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf