Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1476 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] accès qu système de fichier et vérouillage de fichiers (flock)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] accès qu système de fichier et vérouillage de fichiers (flock)

n°272093
minusplus
Posté le 18-12-2002 à 12:46:44  profilanswer
 

Bonjour,
 
j'ai besoin de vos lumières à propos du verrouillage de fichiers. Si j'ai bien compris la chose, une instance d'un script peut se réserver l'accès exclusif à un ficher. D'autres instances de ce script ou d'autres scripts en cours d'exécution au même moment ne pourront donc pas y accéder. Mes questions sont :
1. quelle est la différence entre un verrou dit "exclusif" et un verrou "normal" (c-a-d entre operation=1 et operation=2 dans l'aide de la commande flock())
2. Que signifie ceci : "Si vous voulez que flock() ne se bloque pas durant le verrouillage, ajoutez 4 à operation." ?
3. qu'advient-il à un script qui tente d'accéder à un fichier verrouillé ? Il meurt avec un "Can't access..." ? il attends sa libération ?  
4. On est bien d'accord que l'interêt principal de la chose est de verrouiller un fichier lorsque l'on souhaite écrire dedans. La lecture d'un fichier simultanément par plusieurs processus ne pose pas de problème, hein ?
 
merci d'avance !

mood
Publicité
Posté le 18-12-2002 à 12:46:44  profilanswer
 

n°272100
joce
Architecte / Développeur principal
"BugHunter"
Posté le 18-12-2002 à 12:53:20  profilanswer
 

flock() operates on fp which must be an open file pointer. operation is one of the following values:  
 
 
 
To acquire a shared lock (reader), set operation to LOCK_SH (set to 1 prior to PHP 4.0.1).  
 
To acquire an exclusive lock (writer), set operation to LOCK_EX (set to 2 prior to PHP 4.0.1).  
 
To release a lock (shared or exclusive), set operation to LOCK_UN (set to 3 prior to PHP 4.0.1).  
 
If you don't want flock() to block while locking, add LOCK_NB (4 prior to PHP 4.0.1) to operation.

n°272101
joce
Architecte / Développeur principal
"BugHunter"
Posté le 18-12-2002 à 12:55:27  profilanswer
 

About LOCK_NB
 
The document on the LOCK_NB flag isn't exactly thorough.  I decided to experiment with it a bit anf this is what I've been able to assertain as to it's function.
 
The default behaviour for flock is that if it can't aquire a lock on a file pointer, it will wait until the other process has finished with the file and reliquinahed it's lock and it is then able to retain one itself.  If this doesn't happen, the script will timeout.  
 
If you set the LOCK_NB flag then flock will not wait if it cannot get a lock immideately and will exit, returning false.  You will have to handle the error yourself if you do this but it will prevent the timeouts that normally occur if you're running a script that tries to lock a file that's already been locked and for which the lock won't be released any time soon.

n°272108
minusplus
Posté le 18-12-2002 à 13:07:47  profilanswer
 

il faut un jour que je me décide à ne plus lire que les docs en anglais ! :D
 
alors ce que je ne comprends pas : j'ouvre un fichier. je le locke (exclusif). kk1 d'autre l'ouvre et essaye de le locker, il n'y arrive pas (->FALSE si LOCK_NB, wait sinon puis timeout le cas échéant).
 
comment ce-fait-ce que je puisse ouvrir le fichier même si il est locké ? C'est à dire : pourquoi on ne locke pas un fichier AVANT de l'ouvrir ? Autrement dit encore : si mon 2ème script essaye de lire dans un fichier locké sans chercher à obtenir un lock lui même que se passe-t'il :??:
 
le timeout : combien :??:  
 
 
merci joce ! :D

n°272115
minusplus
Posté le 18-12-2002 à 13:14:29  profilanswer
 

méga rien à voir, je viens de découvrir ça :  
 
http://www.w3schools.com/
 
 
c'est génial ! :D

n°272183
joce
Architecte / Développeur principal
"BugHunter"
Posté le 18-12-2002 à 15:22:34  profilanswer
 

minusplus a écrit :

il faut un jour que je me décide à ne plus lire que les docs en anglais ! :D
 
alors ce que je ne comprends pas : j'ouvre un fichier. je le locke (exclusif). kk1 d'autre l'ouvre et essaye de le locker, il n'y arrive pas (->FALSE si LOCK_NB, wait sinon puis timeout le cas échéant).
 
comment ce-fait-ce que je puisse ouvrir le fichier même si il est locké ? C'est à dire : pourquoi on ne locke pas un fichier AVANT de l'ouvrir ? Autrement dit encore : si mon 2ème script essaye de lire dans un fichier locké sans chercher à obtenir un lock lui même que se passe-t'il :??:
le timeout : combien :??:  
 
 
merci joce ! :D

a mon avis tu te fais jeter :D

n°272192
minusplus
Posté le 18-12-2002 à 15:50:11  profilanswer
 

joce a écrit :

a mon avis tu te fais jeter :D

pkoi tu personnalise le problème comme ça tout de suite ! :D  
 
 
[My Life - continued...] je viens de découvrir le XML, c'est génial aussi :D

n°272236
Dost67
Posté le 18-12-2002 à 17:16:55  profilanswer
 

Bonne chance si tu veux des réponses. J'ai passé 1 semaine à la recherche d'infos sur cette fn l'été dernier et je n'ai tjrs pas de réponse.
M'enfin si un boss de la fn flock() arrivait les réponses aux questions de minusplus m'intéressent aussi.

n°272244
minusplus
Posté le 18-12-2002 à 17:26:58  profilanswer
 

AH ! les grands esprits se rencontrent sur Prog ! :D
 
 
bon ben en attendant, my-life-continued : c'est con que le Perl soit pas plus répandu comme langage pour le web OU que php n'aie pas toutes les libs de Perl...  :whistle: :D

n°272359
Dost67
Posté le 18-12-2002 à 19:45:46  profilanswer
 

Ma solution --> utiliser MySQL comme ça t po emmerdé avec les fichiers textes ;).


Message édité par Dost67 le 18-12-2002 à 19:46:01
mood
Publicité
Posté le 18-12-2002 à 19:45:46  profilanswer
 

n°272646
minusplus
Posté le 19-12-2002 à 11:15:15  profilanswer
 

wé je m'en doute mais moi je voudrais bien utiliser le système de fichier ! :D :o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] accès qu système de fichier et vérouillage de fichiers (flock)

 

Sujets relatifs
Où mettre ses fichiers properties dans une webapp ?[PHP]caractères spéciaux et formulaire
[open gl]comment afficher un objet qui est dans un fichier 3D s max?[PHP] Comment recupperer le temps de generation des pages ???
PHP et Javascript[HTML] droits / accès refusé
Modifier la BDR avec un fichier BAT & REG?Système de votes et de notes à m'expliquer svp
[php] systeme de news simpleDifférences entre ASP, PHP et HTML...
Plus de sujets relatifs à : [PHP] accès qu système de fichier et vérouillage de fichiers (flock)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR