Je ne comprends pas pourquoi tu aurais du perdre ton calme.
Mon post était là pour aider, pas pour faire la leçon. Si j'avais voulu faire la leçon, je m'y serais pris autrement, je n'aurais pas rédigé mon post de cette façon, voire je n'aurais pas posté du tout.
En ajoutant quelques tests mon algo tiens la route.
Après tout, si on suit l'explication d'Eric (que je comprend tout à fait par ailleurs), on pourrait modifier l'algo de la sorte (j'ai testé le code php ci-dessous, et ça fonctionne....) :
#!/usr/bin/php -q
<?php
if ((!file_exists ("test.lock") && ('$f=fopen ("test.lock", "w")))
{
sleep(10);
fclose ($f);
system ("rm test.lock");
}
else
echo "Echec de vérouillage du fichier";
?>
Pour le tester, je l'ai rendu exécutable (appelons-le f1.php), et ai lancé la commande suivante : $ ./f1.php & ./f1.php
De la sorte, le premier process passe tout de suite en arrière-plan, et rend la main au second.
J'ai bien le résultat attendu : la première instance créé le fichier de lock, tandis que la seconde m'indique l'impossibilité de créer le vérou. Passé 10 secondes, la première instance me rend la main.
Si jamais ce script comporte des erreurs, ne perds pas ton calme, hein. J'espère bien profiter de ce post pour comprendre ce qui ne va pas.
[^] # Re: Un ch'tit algo...
Posté par Gyro Gearllose . En réponse au message PHP: Lock sur le system de fichier ?. Évalué à 1.
Mon post était là pour aider, pas pour faire la leçon. Si j'avais voulu faire la leçon, je m'y serais pris autrement, je n'aurais pas rédigé mon post de cette façon, voire je n'aurais pas posté du tout.
En ajoutant quelques tests mon algo tiens la route.
Après tout, si on suit l'explication d'Eric (que je comprend tout à fait par ailleurs), on pourrait modifier l'algo de la sorte (j'ai testé le code php ci-dessous, et ça fonctionne....) :
#!/usr/bin/php -q
<?php
if ((!file_exists ("test.lock") && ('$f=fopen ("test.lock", "w")))
{
sleep(10);
fclose ($f);
system ("rm test.lock");
}
else
echo "Echec de vérouillage du fichier";
?>
Pour le tester, je l'ai rendu exécutable (appelons-le f1.php), et ai lancé la commande suivante : $ ./f1.php & ./f1.php
De la sorte, le premier process passe tout de suite en arrière-plan, et rend la main au second.
J'ai bien le résultat attendu : la première instance créé le fichier de lock, tandis que la seconde m'indique l'impossibilité de créer le vérou. Passé 10 secondes, la première instance me rend la main.
Si jamais ce script comporte des erreurs, ne perds pas ton calme, hein. J'espère bien profiter de ce post pour comprendre ce qui ne va pas.