read files example espaƱol definicion c++ file fstream c++-standard-library

files - read binary file c++



C++ Filehandling: Diferencia entre ios: app e ios: ate? (5)

¿Cuál es la diferencia entre ios::ate y ios:app al escribir en un archivo.
En mi opinión, ios::app le da la capacidad de moverse en el archivo, mientras que con ios::ate solo puede leer / escribir al final del archivo. ¿Es esto correcto?


Aplicación:

no podemos mover el puntero. Será solo al final

Ate:

podemos mover el puntero del registro a cualquier otro lugar


Es al revés. Cuando ios::ate está configurado, la posición inicial será el final del archivo, pero usted es libre de buscar a partir de entonces. Cuando se establece ios::app , todas las operaciones de salida se realizan al final del archivo. Dado que todas las escrituras están precedidas implícitamente por búsquedas, no hay forma de escribir en otro lugar.


Está bastante bien documentado here .

ios::ate "establece el indicador de posición de la secuencia hasta el final de la secuencia al abrirla".

ios:app "establece el indicador de posición de la secuencia hasta el final de la secuencia antes de cada operación de salida".

Esto significa la diferencia que ios::ate coloca su posición al final del archivo cuando lo abre. ios::app lugar lo coloca al final del archivo cada vez que descarga la transmisión. Si, por ejemplo, los dos programas que escriben en el mismo archivo de registro ios:ate anularán todo lo que el otro programa haya agregado al archivo desde que lo abrió. ios:app saltará al final del archivo cada vez que su programa agregue una entrada de registro.


La opción ios::ate es para operaciones de entrada y salida y ios::app nos permite agregar datos al final del archivo.


Se especifican de la siguiente manera (en 27.5.3.1.4 de C ++ 11):

app busca terminar antes de cada escritura

ate abierto y tratar de terminar inmediatamente después de la apertura

Con ios::app la posición de escritura en el archivo es "adhesiva": todas las escrituras están al final, sin importar dónde busque.