Vérouillage lecture fichier - C - Programmation
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" ) |
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
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...
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
Marsh Posté le 26-02-2005 à 21:10:24
dweis a écrit : je ne veux pas de vérrouillage justement. |
Tu peux partir rassuré sur ce point. Va en paix jeune padawan
Marsh Posté le 26-02-2005 à 22:17:46
rassuré je suis
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 ?