Tick: flock in perl

Hi zusammen,

hab folgende Konstruktion:

use Fcntl ":flock";
open(FILE,">> cases.csv") or die "Problems to open file: $!\n";
flock FILE, LOCK_SH;
print FILE time();
print FILE "$parameter{serialnumber};
close(FILE) or die "Problems to close file: $!\n";

Leider kommt dann der error:
Problems to close file: Permission denied.

Wenn ich "flock FILE, LOCK_SH;" auskommentiere dann funkts. Teste es unter Windows. Was mach ich falsch?

ciao,
Tick

  1. hi,

    Wenn ich "flock FILE, LOCK_SH;" auskommentiere dann funkts. Teste es unter Windows. Was mach ich falsch?

    use Englisch;

    --Viktor

    1. hi,

      Wenn ich "flock FILE, LOCK_SH;" auskommentiere dann funkts. Teste es unter Windows. Was mach ich falsch?

      use Englisch;

      use English;

      hab Mist erzählt, sorry.

      so gehts:
      use Fcntl qw(:DEFAULT :flock);

      --Viktor

      1. Hi,

        hi,

        Wenn ich "flock FILE, LOCK_SH;" auskommentiere dann funkts. Teste es unter Windows. Was mach ich falsch?

        use Englisch;
        use English;

        hab Mist erzählt, sorry.

        so gehts:
        use Fcntl qw(:DEFAULT :flock);

        --Viktor

        nee, geht dennoch nicht.

        ciao

        1. Hi,

          arbeitest du unter Windows? Ich weiß nicht, ob es dort überhaupt möglich ist, aber mit Sicherheit ist es mit Problemen verbunden.

          mfG,
          steckl

          1. Hi,

            Hi,

            arbeitest du unter Windows? Ich weiß nicht, ob es dort überhaupt möglich ist, aber mit Sicherheit ist es mit Problemen verbunden.

            mfG,
            steckl

            ja arbeite zum entwickeln unter windows, aber das script läuft später unter unix. D.h. ich sollte mal testen, ob es unter unix funkt. Dachte, das sei platformunabhängig.

            ciao,
            tick

            1. ja arbeite zum entwickeln unter windows, aber das script läuft später unter unix. D.h. ich sollte mal testen, ob es unter unix funkt. Dachte, das sei platformunabhängig.

              ciao,
              tick

              Filelock funktioniert unter Windows NT
              Ich würde filelock nie auf dem File machen, das ich schreibe, sondern auf einem Spezial-File.
              Und genau genommen schreibst du Daten. Warum LOCK_SH?
              Hier kann ein anderer Prozess Lesen.
              Danach unlockst du das File und der andere Prozess darf dann die falschen Daten schreiben.
              mfg Beat

  2. Ergänzend zu meinen Vorrednern:

    Wenn ich "flock FILE, LOCK_SH;" auskommentiere dann funkts. Teste es unter Windows. Was mach ich falsch?

    Teste, ob filelocking unterstützt wird:
    http://forum.de.selfhtml.org/archiv/2005/10/t117214/#m750467

    Ansonsten verwende die systemnahen Befehle sysopen, wie es bspw. perlport in bestimmten Situationen vorschlägt.

    Zum Thema Locking siehe u.a.:
    http://forum.de.selfhtml.org/archiv/2006/9/t135949/#m882520
    http://forum.de.selfhtml.org/archiv/2005/9/t115824/#m740555

    Siechfred

    --
    Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.