¿Cómo escribir de forma segura en un archivo?

Imagina que tienes una biblioteca para trabajar con algún tipo de archivo XML o archivo de configuración. La biblioteca lee todo el archivo en la memoria y proporciona métodos para editar el contenido. Cuando haya terminado de manipular el contenido puede llamar a unwrite para guardar el contenido de nuevo en el archivo. La pregunta es cómo hacer esto de una manera segura.

Sobrescribir el archivo existente (comenzar a escribir en el archivo original) obviamente no es seguro. Si elwrite el método falla antes de que termine, usted termina con un archivo medio escrito y ha perdido datos.

Una mejor opción sería escribir a untemporal archivo en algún lugar, y cuando elwrite el metodo ha terminado, tudupdo El archivo temporal al archivo original.

Ahora, si la copia falla de alguna manera, todavía tiene datos guardados correctamente en el archivo temporal. Y si la copia tiene éxito, puede eliminar el archivo temporal.

En los sistemas POSIX supongo que puedes usar elrename Sistema de llamada que es una operación atómica. Pero, ¿cómo haría esto mejor en un sistema Windows? En particular, ¿cómo manejar esto mejor usandoPitón?

Además, ¿hay otro esquema para escribir de forma segura en archivos?

Respuestas a la pregunta(8)

Su respuesta a la pregunta