2009-10-28 10 views
4

Disons que j'ai une application Windows qui crée un fichier et y écrit des données. L'application a ouvert le fichier exclusivement afin qu'aucun autre processus ne puisse lire les données dans le fichier.Quel type de fichier se supprime dès que le handle est fermé?

Si le processus est arrêté, le fichier est supprimé.

Si le processus est suspendu et que le descripteur du fichier est fermé (à l'aide de Process Explorer), le fichier est supprimé.

Cela doit être dû à une fonctionnalité de Windows, car aucun code n'est exécuté dans le processus car il est désactivé ou suspendu.

Comment cela peut-il être? Quel type de fichier présente ce comportement?

Répondre

9

C'est bon, je viens de le découvrir.

C'est FILE_FLAG_DELETE_ON_CLOSE dans dwFlagsAndAttributes sur la fonction CreateFile.

aurait dû regarder plus dur avant de poser la question :)

+1

Vous pouvez marquer votre réponse comme la réponse acceptée en cliquant sur la coche. – voyager

+0

Fait amusant: en interne, c'est ainsi que fonctionne la fonction 'DeleteFile'. –

1

A "suppression à la fermeture" filehandle.