Frage: Lesen einer Datei bei gleichzeitigem Fremdzugriff



  • Nabend.

    Also folgendes Problem: Wir wollen eine Datei einlesen. Nur ist diese Datei (eine Textdatei) die LogDatei eines Fremdprogrammes, das in unregelmäßigen, aber häufigen Abständen darein schreibt.

    Also: Ist es problematisch, die Dateien mit einem fstream oder ostream einzulesen und wegzukopieren? Oder kann es dann sein, dass das Fremdprogramm dann nicht mehr darauf zureifen kann?
    Falls ja: gibt es eine Möglichkeit das zu umgehen?

    Ich hoffe, meine Beschreibung ist detailiert genug...



  • das ist betriebssystem spezifisch, lesezugriff sollte aber nicht unbedingt ein problem sein



  • Okay, vielen Dank schon mal.

    Wäre das denn unter Windows nen Problem? Und wie sähe es unter Fedora Core 2 und unter Suse (9.1) aus?



  • Das müsste doch funktionieren, wenn du den fstream nach dem lese/schreib-vorgang einfach wieder schließt.
    Unter XP kann man die Datei sonst auch nicht löschen...

    MfG RoaN;



  • Vielen Dank.

    Ich werde das ausprobieren und mehreren Tests unterziehen. Mal schauen, was bei rauskommt.

    Grüße
    Holzfäller



  • Also wenn die loggende Anwendung die Datei wirklich dauerhaft geöffnet hat, solltest du sie IMHO mit deinen Streams nicht aus dem Konzept bringen können. Problematisch wirds wohl z.B., wenn sie die Datei für jeden Eintrag neu öffnet und Schreibrechte anfordert. Gut möglich, dass ofstream intern verbietet, dass andere Anwendungen die Datei während seiner Lebensdauer verändern. Ich würde sagen, Trial & Error führt hier am schnellsten zu einer Antwort.


Anmelden zum Antworten