Hallo Alex!
Wie ihr seht, Fragen über Fragen.
Schon, ich beantworte mal nur ein bissle, hab grad kei rechte Lust.
Jetzt habe ich mir dazu die Funktion flock angesehen, welche ja recht brauchbar ist. Aus DEJA und der perldoc habe ich erfahren, dass wenn man nur LOCK_EX bzw LOCK_SH unter umständen ein anderer Prozess der auch auf die Datei zugreifen will, schreiben oder lesen, "stribt" wenn eine file schon gelockt wurde. (oder habe ich etwas falsch verstanden?) nun habe ich zusätzlich den Befehl LOCK_NB hinzugefügt, immer bei LOCK_SH bzw. EX.
So, das war wohl ein Grammatik Desaster. Ich denke mal, deine Frage hatte was mit dem "Sterben" zu tun. Ich weiß nicht, was du gelesen hast, es ist so:
Wenn du eine Datei gelockt hast und in einem anderen Prozess die gelockte Datei öffnest und ebenfalls versuchst sie zu locken, dann wird dein Programm so lange warten, bis es den lock auf die Datei bekommt. Dein Prozess ist also nicht tot, er wartet nur recht lange.
Wenn du LOCK_NB verwendest (NB: non blocking oder so), dann wird dein Programm, wenn die Datei schon gelockt ist weitermachen. Du erhältst von flock allerdings einen nicht wahren Rückgabewert. Dann darfst du mit deiner Datei natürlich nicht weiterarbeiten, da du ja gemeint hast, du willst nichts falsch machen.
Des weiteren habe ich mir überlegt, dass ich jedes mal vor dem
schreiben check ob eine bestimmte Datei vorhanden ist, ist dies der
Fall, so wird in einer while-Schleife solange gewartet, bis die Datei
nicht mehr existiert. Ist die Datei nicht vorhanden, wird diese
angelegt und erst nach dem close, der eigentlichen datei wieder
gelöscht.
Nun ist die Frage ob das überhaupt etwas bringt? oder überflüssig?
Tut mir leid, aber ich nix verstehen. Wieso wartest du mit dem schreiben in eine Datei so lange, bis die Datei nicht vorhanden ist? Und wiso löschst du die Datei, nachdem du sie beschrieben hast? (Dann kannst du deine Sachen ja gleich nach /dev/null schicken.)
Sag doch mal, was du machen willst und was du mit dem oben gesagten bezweckst.
Gruß,
Stefan