Anzeige:
Ergebnis 1 bis 4 von 4

Thema: In Datei schreiben, wenn diese gelesen wird

  1. #1
    Registrierter Benutzer
    Registriert seit
    01.12.2006
    Beiträge
    32

    In Datei schreiben, wenn diese gelesen wird

    Hallo Experten,

    Heute habe ich mal eine Frage zum Umgang mit Dateien.
    In der Anwendung wird eine Datei erzeugt, in die unregelmäßig geschrieben wird. Irgendwann lese ich den Inhalt der Datei aus und lösche die Datei.
    Was passiert, während ich die auslese bzw. lösche und von einer anderen Stelle versucht wird in die Datei zuschreiben?
    Wenn Sie gelöscht ist, wird eine neue Datei angelegt. Aber was ist, in der Zeit, wenn das Auslesen beendet ist und bevor die Datei gelöscht wurde. Dies geschieht zwar unmittelbar hintereinander aber ein kleiner Delay bleibt immer.
    Können hier Informationen verloren gehen? Muß ich die Lese und Schreiboperationen synchronisieren?

    mfg
    Anunnaki

  2. #2
    Registrierter Benutzer Avatar von Berufspenner
    Registriert seit
    30.03.2002
    Ort
    Hamburg
    Beiträge
    567
    Arbeitest du mit Threads?
    C und C++

  3. #3
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    05.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Du kannst file locks praktisch wie Mutexes verwenden.
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    File Locking kann je nach Filesystem mehr oder weniger gut funktionieren.

    Unter Unix kann man sich meistens mittels "atomic rename" helfen, also in eine temporäre Datei schreiben und anschließend auf den eigentlichen Dateinamen umbenennen.

    Das geht natürlich leider nicht unter Windows, weil es im Umgang mit Dateien wesentlich limitierter ist und das Umbenennen nicht gestattet, wenn jemand die Zieldatei geöffnet hat.

    Wenn die beteiligten Leser und Schreiber auf der Datei innerhalb der selben Anwendung sind, fährt man am Besten, wenn man den Zugriff innerhalb der Anwendung arbitriert, also dort festlegt, wer wann was tun darf.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •