flock Verrouille le fichier &reftitle.description; boolflock resourcestream intoperation intwould_block&null; flock permet de réaliser un système simple de verrous écriture/lecture, qui peut être utilisé sur n'importe quelle plate-forme (Unix et Windows compris). Le verrou est également levé avec fclose, ou quand stream est ramassé par le ramasse-miette. PHP dispose d'un système complet de verrouillage de fichiers. Tous les programmes qui accèdent au fichier doivent utiliser la même méthode de verrouillage pour qu'il soit efficace. Par défaut, cette fonction se bloquera tant que le verrou demandé ne sera pas acquis ; ce comportement peut être contrôlé avec l'option LOCK_NB dont vous trouverez la documentation ci-dessous. &reftitle.parameters; stream &fs.file.pointer; operation operation peut prendre une des valeurs suivantes : LOCK_SH pour acquérir un verrou partagé (lecture). LOCK_EX pour acquérir un verrou exclusif (écriture). LOCK_UN pour libérer un verrou (partagé ou exclusif). Il est également possible d'ajouter LOCK_NB comme masque d'une des opérations précédentes si vous ne voulez pas que la fonction flock bloque durant le verrouillage. would_block Ce troisième argument optionnel est défini à 1 si le verrou doit bloquer le script (condition d'erreur EWOULDBLOCK). &reftitle.returnvalues; &return.success; &reftitle.examples; Exemple avec <function>flock</function> ]]> Exemple avec <function>flock</function> en utilisant l'option <constant>LOCK_NB</constant> ]]> &reftitle.notes; flock utilise les verrous obligatoires sous Windows, qui sont aussi supportés sur Linux et les systèmes dérivés de System V au moyen de l'appel système fcntl(): si le fichier en question a le bit setgid positionné et le bit de groupe vide. Sur Linux, le système de fichiers devra être monté avec l'option mand pour que cela fonctionne. Comme flock requiert un pointeur de fichier, vous aurez peut être à utiliser un verrou spécial pour protéger l'accès au fichier que vous voulez tronquer en l'ouvrant en mode d'écriture (avec "w" ou "w+" comme argument de fopen). Ne devrait être utilisé que sur des ressources issues de fopen pour des fichiers locaux ou via le gestionnaire de flux personnalisé en définissant streamWrapper::stream_lock. Assigner une autre valeur à l'argument stream dans ce code libèrera le verrou. Sur certains systèmes d'exploitation, flock est implémenté au niveau processus. Lorsque vous utilisez une API multithread, vous risquez de ne pas pouvoir avoir confiance en flock pour protéger vos fichiers contre d'autres scripts PHP qui fonctionnent en parallèle sur d'autres threads du même serveur. flock n'est pas supporté sur les vieux systèmes de fichiers comme FAT et ses dérivés, et elle retournera forcément &false; sous ces environnements. Sur Windows, si la procédure de verrou ouvre une fichier une deuxième fois, il ne peut pas accéder au fichier à travers ce gestionnaire jusqu'à ce le fichier soit déverrouillé.