Marko: Perl, Datei sperren während Bearbeitung

Hallo,

ich bin gerade dabei in Perl ein Gästebuch zu schreiben, und habe da eine kleine Unklarheit:
Muss ich wenn ich eine Datei zum bearbeiten öffne (es wird dabei der ganze Inhalt eingelesen, vorne etwas angehängt, und dann wieder zurückgeschrieben), diese irgendwie sperren. In einem Buch habe ich den Befehl FLOCK gefunden, wobei mir etwas unklar ist, wozu ich ihn brauche, und in Selfhtml wird dieser Befehl garnicht erwähnt.
Wäre nett wenn irgendjemand der davon Ahnung hat mich in dieser Beziehung aufklären könnte.

Danke

Marko

  1. hi!

    Muss ich wenn ich eine Datei zum bearbeiten öffne (es wird dabei der ganze Inhalt
    eingelesen, vorne etwas angehängt, und dann wieder zurückgeschrieben), diese irgendwie
    sperren. In einem Buch habe ich den Befehl FLOCK gefunden, wobei mir etwas unklar ist,
    wozu ich ihn brauche, und in Selfhtml wird dieser Befehl garnicht erwähnt.

    Die Funktion flock sperrt die Datei, so dass keiner mehr auf die Datei zugreifen kann. Sonst könnten evtl. zwei Prozesse versuchen, auf die Datei zuzugreifen und etwas reinzuschreiben. Dabei könnte zb. die ganze Datei verlorengehen o.ä.
    Es ist auf jeden Fall sicherer, flock zu verwenden, vor allem bei Gästebüchern.

    bye, Frank!

    1. Die Funktion flock sperrt die Datei, so dass keiner mehr auf die Datei zugreifen kann. Sonst könnten evtl. zwei Prozesse versuchen, auf die Datei zuzugreifen und etwas reinzuschreiben. Dabei könnte zb. die ganze Datei verlorengehen o.ä.
      Es ist auf jeden Fall sicherer, flock zu verwenden, vor allem bei Gästebüchern.

      Wie sieht der Sourcecode für diesen Befehl aus, wo muß ich diesen einbauen...

      Gruß Andre

      1. hi!

        Es ist auf jeden Fall sicherer, flock zu verwenden, vor allem bei Gästebüchern.
        Wie sieht der Sourcecode für diesen Befehl aus, wo muß ich diesen einbauen...

        flock DATEIHANDLE, OPERATION
        siehe auch ftp://mirror.xmission.com/CPAN/doc/manual/html/pod/perlfunc/flock.html

        Einzubauen ist der Befehl, bevor man auf die Datei zum Schreiben zugreift.

        bye, Frank!

  2. Hallo,

    ich bin gerade dabei in Perl ein Gästebuch zu schreiben, und habe da eine kleine Unklarheit:
    Muss ich wenn ich eine Datei zum bearbeiten öffne (es wird dabei der ganze Inhalt eingelesen, vorne etwas angehängt, und dann wieder zurückgeschrieben), diese irgendwie sperren. In einem Buch habe ich den Befehl FLOCK gefunden, wobei mir etwas unklar ist, wozu ich ihn brauche, und in Selfhtml wird dieser Befehl garnicht erwähnt.
    Wäre nett wenn irgendjemand der davon Ahnung hat mich in dieser Beziehung aufklären könnte.

    Gibt es vielleicht eine Möglichkeit, daß sich Programme, die in eine Datei schreiben sollen, sich in eine Warteschlange einreihen? Also erst darf Programm 1 schreiben, und wenn wärend dieser Arbeiten Programm 2 aufgerufen wird, wartet es so lange, bis Programm 1 fertig ist. Kennt jemand so eine Möglichkeit?