La apertura de un archivo en 'A +' modo de
-
01-10-2019 - |
Pregunta
Si se abre un archivo con el siguiente comando:
FILE *f1=fopen("test.dat","a+");
La página del manual dice lo siguiente:
a +
Abrir para leer y añadir (escribir al final del archivo). los archivo se crea si no existe. La posición inicial del archivo para la lectura está en el principio del archivo, pero la producción es Siempre se adjunta al final del archivo.
También lo hace f1
tener 2 punteros de desplazamiento separados, uno para lectura y otro para escribir?
Solución
No.
Sólo hay un puntero que inicialmente se encuentra al principio del archivo, pero cuando se intenta realizar una operación de escritura se mueve al final del archivo . Puede cambiar su posición usando fseek
o rewind
en cualquier parte del archivo para lectura, pero las operaciones de escritura se moverá de nuevo al final del archivo.
Otros consejos
No sólo tiene un puntero.
Puede no mezclar las operaciones de lectura y escritura en un FILE
sin llamar fseek
en el medio. Es posible que funcione como desee en algunas implementaciones, pero un programa que depende de esto tiene un comportamiento indefinido. Así, las cuestiones de tener 2 posiciones no tiene sentido.