Ouverture d'un fichier 'a +' Mode
-
01-10-2019 - |
Question
Si un fichier est ouvert à l'aide de la commande suivante:
FILE *f1=fopen("test.dat","a+");
La page de manuel se lit comme suit:
+
Ouvrir pour la lecture et annexant (écrit à la fin du fichier). le fichier est créé si elle n'existe pas. La position initiale du fichier pour la lecture est au début du fichier, mais la sortie est toujours ajouté à la fin du fichier.
Alors ne f1
2 ont des pointeurs de compensation distincts, l'un pour la lecture et une autre pour l'écriture?
La solution
Non.
Il y a juste un pointeur qui est d'abord au début du fichier, mais quand une opération d'écriture est tentée, il est déplacé vers la fin du fichier . Vous pouvez repositionner à l'aide de partout fseek
ou rewind
dans le fichier pour la lecture, mais les opérations d'écriture se rabattez la fin du fichier.
Autres conseils
Non, il n'a qu'un seul pointeur.
Vous pouvez jamais mixer la lecture et l'écriture des opérations sur un FILE
sans appeler fseek
entre les deux. Il peut fonctionner comme vous le souhaitez sur certaines implémentations, mais un programme qui dépend de ce qui a un comportement non défini. Ainsi, les questions de positions ayant 2 n'a pas de sens.