C/Visual C - novato y ficheros temporales

 
Vista:

novato y ficheros temporales

Publicado por chals (2 intervenciones) el 13/03/2002 10:44:42
En mi programa se abre y lee un fichero de texto,se hacen operaciones sobre este y añaden a otro fichero de salida.
El problema viene cuando el usuario cierra el programa cuando todavía se esta escribiendo en el fichero.
Me gustaría escribir en un fichero temporal y cuando se acabara de escribir,abrir el txt de salida y copiar en este el temporal.
¿puede hacerse esto?
Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:novato y ficheros temporales

Publicado por Alvaro (122 intervenciones) el 13/03/2002 12:23:46
Si estas en windows:
La unica forma que conosco es eliminando el archivo original y luego cambiano el nombre del archivo temporal.
Esto lo puedes hacer utilizando DeleteFile para borrar el archivo original y MoveFile para renombrar el archivo temporal.
De todos modos corres el peligro de que el usuario cierre el programa cuando eliminaste el archivo original y estas apunto de renombrar el archivo temporal.
Para asegurar que esto no ocurra, debieras implementar semaforos o algo similar (objeto mutex??) en el archivo, y permitir al usuario cerrar el programa solo cuando el semaforo lo permita.
Desafortunadamente, no se la forma de implementar semaforos en c para windows.
Espero haber ayudado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar