DLL => fstream => erst zwischen gespeichert und dann auf Festplatte?



  • Moin Leute

    Also ich hab eine DLL in mehreren Prozessen und die schreibt was in ne Datei.
    Allerdings wird das erst geschrieben wenn ich die DLL wieder unloade,vorher steht
    nichts in der Datei.

    Sobald ich sie aber unloade ist die Datei voll o.O

    Wird das irgendwie in nem Cache gespeichert und erst am ende auf die Platte geschrieben bei DLLs oder was?

    Weiß jemand was ich da tun kann?

    mfg Kounzn



  • Jo diese Klassen (std::fstream, usw) arbeiten mit einem sog. 'gepufferten Output' cachen also alles was man denen an Infos gibt. Abhilfe schafft hier die Methode flush mit der das Schreiben des aktuellen Inhalts in die Datei erzwungen wird.
    Also in etwa so:

    std::fstream fsFile(...);
    fsFile << "BLAHHBLAHHBLAHH...";
    fsFile.flush(); // danach steht "BLAHHBLAHHBLAHH..." sofort in der Datei.
    

    Hoffe, dass Du das meinst 😉 .



  • Werd ich gleich mal ausprobieren sofern ich mich von meinem Bett (und meinem
    Laptop) losreißen kann ;P

    Aber ich hätt noch eine Frage:

    In die Datei schreiben neben DLLs auch ein ganz normaler Prozess und dessen Output
    steht sofort drinnen?!

    mfg

    P.S:Warum is das Forum jetzt in so nem schwulem Lila? 😮


Log in to reply