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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top