c++ und fstream auf solaris 5.8 mit gcc 3.3.2

  • hi!

    ich hab hier ein mehr als komisches problem - es sieht so aus, als ob ich mit einem fstream nur 255 mal ein open durchführen könnte, dannach führt ein open immer zu einem setzen des fail bits ...

    kann das sein, dass es diese einschränkung gibt?

    das ganze passiert in einem daemon der alle 2min ein dir auf ein file abprüft und dessen inhalt dann lädt ...

    lg

    -~-~ "Wenn du nicht irrst, kommst du nicht zu Verstand!" ~-~-

  • Das klingt eher nach einem file descriptor leak. Kontrolliere mal, ob du die Datei dann auch wieder brav schließt.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • file descriptor leak is es eher nicht ... ich schließ zum schluß ganz brav alle file descriptoren mit .close(); und vor jedem öffnungsvorgang mach ich ein .clear(); bzw. überprüf mit .is_open(); ob er noch offen is usw. ...

    aber es muss irgendwas mit der anzahl der durchgänge zu tun haben, denn auch wenn ich einfach nur 255mal die schleife laufen lasse kann er dannach keine files mehr öffnen (also hängts mal nicht mit der anzahl der öffnungsvorgänge zusammen)

    noch ideen?

    -~-~ "Wenn du nicht irrst, kommst du nicht zu Verstand!" ~-~-

  • Und wenn du bei jedem Durchlauf einen neuen fstream erzeugst?

    Wie schaut denn dein Code aus?

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • hi!
    hab den code jetzt auf das (siehe unten) reduziert ... er läuft ca. 40s lang und beendet sich dann ... ich werd ihn mal nicht in den hintergrund schicken und die error ausgabe nicht umleiten (obwohl ichs eigentlich im logfile sehen müsste, da umgeleitet ... kA)

    -~-~ "Wenn du nicht irrst, kommst du nicht zu Verstand!" ~-~-

  • In welcher Zeile?

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • ./ctchd: line 62: 23202 Segmentation Fault ./$ctchdbin

    in zeile 62 is allerdings nix relevantes - is auch außerhalb der schleife - naja wird wohl fürs binary gelten, ...

    -~-~ "Wenn du nicht irrst, kommst du nicht zu Verstand!" ~-~-

  • ich schätz mal es liegt an dem fehlenden closedir ...

    hab voll nicht auf das geachtet ...

    mal testen

    -~-~ "Wenn du nicht irrst, kommst du nicht zu Verstand!" ~-~-

  • ja na klar ... jetz läuft er erstmal ... werds programm wieder zusammenbaun und schaun obs nur das war ... tztz ... da denkt man eh extra an die ganze fileptr und dann is es der directory pointer ^^

    -~-~ "Wenn du nicht irrst, kommst du nicht zu Verstand!" ~-~-

  • In UNIX ist ein Verzeichnis auch nur eine Datei, in der als Inhalt der Verweis auf die Dateien darin stehen (deswegen muss man auch Schreibrechte fürs Verzeichnis haben, um dort Dateien löschen zu können, und nicht für die Datei selber).

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!