Joeman
23-09-2004, 10:29
Hi!
Ich habe ein Problem mit dem guten alten fopen:
Und zwar bekomme ich nach einiger Laufzeit den Fehler 24 (EMFILE).
Das bedeutet, dass ich zu viele Dateien geöffnet habe, also mehr als in FOPEN_MAX bzw. OPEN_MAX erlaubt sind.
Nun werden in dem Programm in zig unterschiedlichen Funktionen und Stellen fopen und fclose benutzt. Bei irgendeinem fopen scheint also ein fclose zu fehlen.
Ich möchte mir daher in der Hauptschleife immer ausgeben lassen, wieviele Dateien mittlerweile geöffnet sind, um zu erkennen in welchem Programmteil der Fehler versteckt ist. Wie kann ich das machen?
Der Filepointer zeigt ja nur die Speicheradresse an, nicht die fortlaufende "Nummer" der geöffneten Datei.
Gibt es irgendeinen Strukt, der diese Information enthält?
Es muss ja irgendwo mitgezählt werden, sonst könnte der Fehler oben ja nie auftauchen.
Das Programm ist in C auf einer Linuxmaschine.
Schon mal danke!
Gruß
Joeman
Ich habe ein Problem mit dem guten alten fopen:
Und zwar bekomme ich nach einiger Laufzeit den Fehler 24 (EMFILE).
Das bedeutet, dass ich zu viele Dateien geöffnet habe, also mehr als in FOPEN_MAX bzw. OPEN_MAX erlaubt sind.
Nun werden in dem Programm in zig unterschiedlichen Funktionen und Stellen fopen und fclose benutzt. Bei irgendeinem fopen scheint also ein fclose zu fehlen.
Ich möchte mir daher in der Hauptschleife immer ausgeben lassen, wieviele Dateien mittlerweile geöffnet sind, um zu erkennen in welchem Programmteil der Fehler versteckt ist. Wie kann ich das machen?
Der Filepointer zeigt ja nur die Speicheradresse an, nicht die fortlaufende "Nummer" der geöffneten Datei.
Gibt es irgendeinen Strukt, der diese Information enthält?
Es muss ja irgendwo mitgezählt werden, sonst könnte der Fehler oben ja nie auftauchen.
Das Programm ist in C auf einer Linuxmaschine.
Schon mal danke!
Gruß
Joeman