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

  FORUM HardWare.fr
  Programmation
  C++

  Comment verrouiller un fichier avec flock

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment verrouiller un fichier avec flock

n°1576474
utb diablo
.: :. 4 ever xo0
Posté le 18-06-2007 à 18:58:08  profilanswer
 

Salut tout le monde !
 
Voila, j'essaie depuis hier de verrouiller un fichier avec flock().
 
Je comprends pas, le verrou est bien posé, flock me renvoie 0, pourtant j'arrive à afficher le contenu du fichier et à le modifier.
 
J'ai été voir du coté de mandatory.txt, j'ai donc essayé de revoir mon code en utilisant fcntl. Sans succès :(
 
Donc si quelqu'un a dejà reussi à vérouiller un fichier, ce serait sympa de m'aider.
 
Merci
 
Mon code :
 

Code :
  1. //On ouvre le fichier
  2. int dFile = open(tempName, O_RDONLY);
  3. //On pose le verrou
  4. flock(dFile, LOCK_SH);
  5. //On effectue des actions sur le contenu du fichier
  6. /*
  7. [...]
  8. */
  9. //On le ferme
  10. flock(dFile, LOCK_UN);
  11. close(dFile);


 
Sauf que pendant l'exécution des actions, le fichier est "readable" par les autres processus, ce que je ne veux pas !


---------------
Au royaume des aveugles, les borgnes sont rois xo0
mood
Publicité
Posté le 18-06-2007 à 18:58:08  profilanswer
 

n°1576618
Taz
bisounours-codeur
Posté le 19-06-2007 à 09:23:32  profilanswer
 

les lock sont coopératifs, sauf si tu montes ta partition en mandatory


Message édité par Taz le 19-06-2007 à 09:23:43
n°1576798
utb diablo
.: :. 4 ever xo0
Posté le 19-06-2007 à 14:47:28  profilanswer
 

Ah, j'avais vu un peu de ca dans mandatory.txt,
Mais ya moyen de passer outre avec lockf ou fcntl ?
 
Sinon, a quoi ca servirait de vérouiller un fichier ? Je veux dire que pour l'instant je n'ai pas vu de différences entre le moment ou je pose mon verrou et le moment ou je l'enlève.


---------------
Au royaume des aveugles, les borgnes sont rois xo0
n°1576860
Taz
bisounours-codeur
Posté le 19-06-2007 à 16:11:21  profilanswer
 

non. ça te sert à quoi d'ailleurs tout ça ?

n°1576886
utb diablo
.: :. 4 ever xo0
Posté le 19-06-2007 à 16:33:54  profilanswer
 

Enfait, je réalise un programme qui écrit un fichier bash pour ensuite l'exécuter, sauf que je voudrais que pendant l'exécution du code bash, le fichier ne soit pas accessible en lecture.
 
Donc, la seule facon de verrouiller un fichier avec flock, c'est de monter ma partoche en mandatory ? OK
 
Je voudrais savoir, s'il était possible de créer un fichier virtuel ? C'est a dire un fichier qui ne serais pas stocké sur le ddur mai que je pourrais quand même faire exécuter par bash.
 
On dit que sous Unix, tout est fichier, ca doit etre possible de faire ca non ?
Je pense plus précisément à l'utilisation d'un buffer par exemple.


Message édité par utb diablo le 19-06-2007 à 16:35:45

---------------
Au royaume des aveugles, les borgnes sont rois xo0
n°1577052
utb diablo
.: :. 4 ever xo0
Posté le 20-06-2007 à 07:30:39  profilanswer
 

Citation :

Je voudrais savoir, s'il était possible de créer un fichier virtuel ? C'est a dire un fichier qui ne serais pas stocké sur le ddur mai que je pourrais quand même faire exécuter par bash.
 
On dit que sous Unix, tout est fichier, ca doit etre possible de faire ca non ?
Je pense plus précisément à l'utilisation d'un buffer par exemple.


 
non ?


---------------
Au royaume des aveugles, les borgnes sont rois xo0
n°1577091
straffo
Posté le 20-06-2007 à 09:55:33  profilanswer
 

Je vais peut-être poser une question conne ...  
Tu ne pourrais pas obtenir la même chose avec des droits sur le fichier ?

n°1577106
Taz
bisounours-codeur
Posté le 20-06-2007 à 10:24:02  profilanswer
 

utb diablo a écrit :

Citation :

Je voudrais savoir, s'il était possible de créer un fichier virtuel ? C'est a dire un fichier qui ne serais pas stocké sur le ddur mai que je pourrais quand même faire exécuter par bash.
 
On dit que sous Unix, tout est fichier, ca doit etre possible de faire ca non ?
Je pense plus précisément à l'utilisation d'un buffer par exemple.


 
non ?


fait un pipe :o

n°1577203
utb diablo
.: :. 4 ever xo0
Posté le 20-06-2007 à 12:03:17  profilanswer
 

Citation :

Je vais peut-être poser une question conne ...  
Tu ne pourrais pas obtenir la même chose avec des droits sur le fichier ?


 
Waip, si je trouve pas de soluce avec les verrous, je ferais comme ca.
 

Citation :

fait un pipe :o


 
J'aurais bien aimé mais,
 - si je fais un pipe, tout sera visible avec ps x
 - le code bash est contenu dans un array string, donc je vois mal comment faire un pipe là-dessus
 

Code :
  1. string array[4];
  2. array[0] = '#!/bin/sh';
  3. array[1] = '';
  4. array[2] = 'echo "Hello you !"';
  5. array[3] = 'exit';


 
PS : Je viens de tomber sur ce document, http://www.chez.com/vidalc/lf/socket.html#blocking
L'auteur utilise fcntl sur une partoche qui n'est pas (en tout cas, il n'en fait pas mention) en mandatory.
 
Si j'ai bien compris, les sockets sont traités comme n'importe que autre descripteur de fichier.
je comprends pas, pourquoi le monsieur il peut utiliser fcntl et pas moi :@


Message édité par utb diablo le 20-06-2007 à 14:30:53

---------------
Au royaume des aveugles, les borgnes sont rois xo0
n°1581398
Taz
bisounours-codeur
Posté le 02-07-2007 à 10:59:56  profilanswer
 

ah ouais donc tu ne sais pas ce que c'est qu'un pipe.

mood
Publicité
Posté le 02-07-2007 à 10:59:56  profilanswer
 

n°1634906
utb diablo
.: :. 4 ever xo0
Posté le 31-10-2007 à 19:03:45  profilanswer
 

une pipe, je vois bien :P
mais un pipe non :)
 
C'est pas un truc du genre : cat fichier | grep foo ?


---------------
Au royaume des aveugles, les borgnes sont rois xo0

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

  Comment verrouiller un fichier avec flock

 

Sujets relatifs
Comment acceder un fichier sur le reseau avec un programme exe[résolu] Pourquoi flock ne demande pas un FILE* ?
[Javascript] inclure un fichier .js dans un fichier .jsInstallation Hardware fichier inf besoin d'aide
Extraction d'url depuis un fichierSupprimer des doublons d'un fichier en conservant la dernière ligne
[Résolu]Programme supprimant les commentaires d'un fichier CBesoin aide en PHP,lister un fichier
Génération de fichier xml à partir de php mysql. [Résolu]Récupérer le S/N + le prix dans un fichier CSV
Plus de sujets relatifs à : Comment verrouiller un fichier avec flock


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