Vérouillage lecture fichier

Vérouillage lecture fichier - C - Programmation

Marsh Posté le 26-02-2005 à 00:43:30    

Si (sous linux) j'ouvre un fichier en lecture seule avec fopen("file.txt", "r" )
est-ce que ça va "vérouiller le fichier" ?
C'est à dire, est-ce qu'un autre programme qui tourne en même temps pourra avoir accès au fichier ou pas ?
 
En gros immaginons que j'ai 100 processus qui tournent en même temps et qui accèdent tous au même fichier (en lecture uniquement), est-ce que ça va marcher ?

Reply

Marsh Posté le 26-02-2005 à 00:43:30   

Reply

Marsh Posté le 26-02-2005 à 01:03:34    

s'ils lisent tous, ça va marcher très bien

Reply

Marsh Posté le 26-02-2005 à 01:05:31    

ouf, parfait alors :)
 
merci

Reply

Marsh Posté le 26-02-2005 à 09:48:16    

dweis a écrit :

Si (sous linux) j'ouvre un fichier en lecture seule avec fopen("file.txt", "r" )
est-ce que ça va "vérouiller le fichier" ?
C'est à dire, est-ce qu'un autre programme qui tourne en même temps pourra avoir accès au fichier ou pas ?
 
En gros immaginons que j'ai 100 processus qui tournent en même temps et qui accèdent tous au même fichier (en lecture uniquement), est-ce que ça va marcher ?


 
Le mode "r" signifie que tu ouvres le fichier seulement pour lire dedans, pas que tu le verrouilles contre les accès concurrents. Non seulement tous les autres processus pourront faire pareil, mais ça n'empêchera même pas quelqu'un d'autre d'ouvrir le fichier pour y écrire (cela peut même être génant si plusieurs écrivent en même temps)
 
MAintenant, si tu veux utiliser en plus des outils de verrouillage, tu as les fonctions "fcntl" à ta disposition http://man.he.net/man2/fcntl

Reply

Marsh Posté le 26-02-2005 à 20:08:23    

exactement, faut faire un lock sur l'enregistrement que tu lis...
 
certe tout les processus peuvent ouvrir le fichier, mais tu peux locké l'enregistrement en cours afin qu'un autre processus ne vienne pas le modifier quand tu fais une opération dessus... c'est en tout cas la meilleure solution
 
donc le mode d'ouverture ne te garanti aucun verrouillage du fichier...

Reply

Marsh Posté le 26-02-2005 à 20:09:15    

avec fnctl, c'est que du verrour coopératif

Reply

Marsh Posté le 26-02-2005 à 20:56:05    

je ne veux pas de vérrouillage justement.
je voulais juste être sûr que quand tu fais un fopen en lecture, il ne fait pas de verrouillage

Reply

Marsh Posté le 26-02-2005 à 21:10:24    

dweis a écrit :

je ne veux pas de vérrouillage justement.
je voulais juste être sûr que quand tu fais un fopen en lecture, il ne fait pas de verrouillage


Tu peux partir rassuré sur ce point. Va en paix jeune padawan :D


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 26-02-2005 à 22:17:46    

rassuré je suis :)


Message édité par dweis le 26-02-2005 à 22:17:53
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed