Bonjour,

Je réalise un petit chat, où j'utilise un fichier pour stocker les messages des utilisateurs. Dans mon script pour ajouter des messages il faut donc que je m'assure que plusieurs utlisateurs en peuvent pas écrire en même temps dans le fichier.

En cherchant sur le net j'ai trouvé ce petit bout de code qui permet de vérouiller un fichier en écriture.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
<?php
 
$fp = fopen("/tmp/lock.txt", "w+");
 
if (flock($fp, LOCK_EX)) { // pose un verrou exclusif
    fwrite($fp, "Ecrire dans le fichier\n");
    flock($fp, LOCK_UN); // libère le verrou
} else {
    echo "Impossible de verrouiller le fichier!";
}
 
fclose($fp);
 
?>
Mon souci c'est de savoir, si cette fonction flock utilise un système de file d'attente, ou si le fichier est vérouillé est ce qu'il n'attend pas qu'il soit dévérouillé et n'inscrira donc pas le message de l'utilisateur dans le tchat.

Si ce n'est pas le cas comment pourrais je faire un système de file d'attente pour attendre que le fichier soit dévérouillé pour écrire dedans ?