Flock og exec problem i PHP

Tags:    php

Jeg vil gerne lave en funktion i php som åbner to filer. Læser fra den ene og skriver i den anden. I sidste ende skal den fil der bliver skrevet til overskrive den fil der bliver læst fra. Jeg har derfor lavet følgende funktion:

Fold kodeboks ind/udKode 



Problemet opstår når jeg stresstester funktionen. Det viser sig at filen ganske rigtigt ikke bliver låst op før at jeg beder om det til sidst. Men sletningen af filen ($cmd = "/usr/bin/sudo -u root rm test_new.tmp";) tager tilsyneladende så lang tid at udføre at en ny fil handler har nået at få skriverettigheder til den inden at den rent faktisk er væk i filsystemet. Derfor bliver der ikke lavet en ny fil og når der så forsøges at skrive til den igen får jeg en fejl om at filen ikke eksisterer.

Spørgsmål: Hvordan får jeg min php funktion til at vente til kommandoen rent faktisk er udført til fulde.

Jeg håber dette er forklarende nok ellers spørg løs.





1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Hvorfor ikke nøjes med at bruge alle PHPs egne fil funktioner?

flock, fopen, fput/fwrite, fclose og unlink.

exec vil jeg kun anbefale til, hvis du har nogle egenskaber du absolut ikke kan genskabe i PHP.




Indlæg senest redigeret d. 14.02.2007 12:53 af Bruger #10216
t