Pregunta

Estoy corriendo un proceso, que es la creación de un archivo y utilizar ese archivo. Después del final de ese proceso, estoy borrando ese archivo.

Si alguna excepción surge en medio entonces cómo sabe que el archivo es liberado por el proceso o no, y cómo eliminarlo si está bloqueado por el proceso.

Gracias por cualquier ayuda:)

¿Fue útil?

Solución

En Windows, cuando termine el proceso, el sistema operativo devuelve todos los recursos propiedad de ese proceso de forma automática. Fin de la historia.

Por ejemplo, digamos que usted hizo "CreateFileMapping ()" en cada uno de dos procesos para compartir un segmento de memoria. Cuando las primeras salidas del proceso, Windows disminuye el contador de uso, y sólo sobrevive el proceso aún puede utilizar el objeto. Cuando el segundo proceso realiza una "CloseHandle ()" (o sí sale), el contador se decrementa a cero, y el objeto está completamente liberado.

En otras palabras, Windows recuperar el recurso cuando ya no se usa, si los procesos limpiar con gracia por sí mismos o no.

Y no, incluso si se abre un archivo para acceso exclusivo, el propio archivo no se puede "bloquear" una vez que el identificador de archivo se cierra (y Windows lo cerrará automáticamente cuando las termina de programa).

Otros consejos

Cuando termine su programa - no importa lo que - por medio. El archivo, si es que todavía existe, ya no serán bloqueados por el proceso ... porque el proceso no existe

Pero tengo que extrañar; si el archivo simplemente está siendo borrado de todos modos al final, lo que realmente necesita para crear un archivo en el primer lugar?

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