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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top