Patric: Datei-Zugriff

Morgen,

ich habe auf meiner Linux-Kiste (SuSE Ver6.0) den Apache mit mod_perl installiert. Rufe von einer HTML-Page ein Perl-Script auf, welches Content in einer Datei ablegen soll. Anschliessend möchte ich mir die Datei auf 'nem Browser anzeigen lassen können. Ich öffne die Datei im Script zum anhängenden Schreiben mit open(FILEHANDLER, ">>file.txt"); Es folgen einige print FILEHANDLER "...";-Statements. Zum Schluss ein close(FILEHANDLER);. Die Datei wird jedoch nicht angelegt. Kann es sein, daß ich die falschen Rechte auf das Directory in der httpd.conf gegeben habe? Was können außerdem Ursachen dafür sein, daß das nicht funktioniert. Lege ich händisch eine Datei an, und möchte einen Lesezugriff auf sie durchführen, so funktioniert das auch nicht. Das Öffnen der File schlägt fehl.

Da wäre noch etwas anderes: Ich möchte die Einträge, welche als letztes in die Datei geschrieben wurden, möglichst als erstes wieder auslesen. (Wie) Geht das? Mit sequentiellem Zugriff scheint das nicht ohne Umstände möglich zu sein.

Besten Dank schon mal.

  1. Hallöle!

    Du hast wahrscheinlich in dem Verzeichnis, wo Du die Datei erstellst, nicht die nötigen Rechte gesetzt. Schau dort mal mit ls -la nach, wie die Rechte für andere User aussehen (der Webuser _ist_ ja ein anderer User). Mit der Httpd.conf sollte das eigentlich nichts zu tun haben...

    Da wäre noch etwas anderes: Ich möchte die Einträge, welche als letztes in die Datei geschrieben wurden, möglichst als erstes wieder auslesen. (Wie) Geht das? Mit sequentiellem Zugriff scheint das nicht ohne Umstände möglich zu sein.

    Da warte ich auch auf die Antworten ;-)

    Bis denne,
    Dennis

    1. Da wäre noch etwas anderes: Ich möchte die Einträge, welche als letztes in die Datei geschrieben wurden, möglichst als erstes wieder auslesen. (Wie) Geht das? Mit sequentiellem Zugriff scheint das nicht ohne Umstände möglich zu sein.

      Einfache Lösung: auch als erstes schreiben ;-)

      Also:

      • Datei öffnen (read)
      • komplett einlesen
      • Datei schliessen
      • Datei öffnen (write)
      • neuen Eintrag schreiben
      • alten Inhalt schreiben
      • Datei schliessen

      Gruß Frank

  2. Hi,

    Ich öffne die Datei im Script zum anhängenden Schreiben mit open(FILEHANDLER, ">>file.txt"); [...]

    frage bei _allen_ Dateioperationen den Fehlercode ab! Anschließend findest Du im Errorlog Aufschluß.

    open(...) or die "Kann Datei nicht oeffnen: $!";
    ...
    close(...) or die "Kann Datei nicht schliessen: $!"; # bei Lesezugriffen nicht wirklich nötig

    Cheatah