Domanda

Sono in esecuzione di un processo, che sta creando un file e l'utilizzo di tale file. Dopo la fine di questo processo, che sto eliminando il file.

Se qualche eccezione si pone in mezzo poi come sapere che il file viene rilasciato dal processo o no e come eliminarlo se è bloccato dal processo.

Grazie per qualsiasi aiuto:)

È stato utile?

Soluzione

In Windows, quando le estremità di processo, il sistema operativo restituisce tutte le risorse di proprietà di quel processo automaticamente. Fine della storia.

Per esempio, diciamo che hai fatto "CreateFileMapping ()" a ciascuno dei due processi per condividere un segmento di memoria. Quando i primi uscite di processo, Windows decrementa il contatore di utilizzo, e solo il processo superstite può ancora utilizzare l'oggetto. Quando il secondo processo fa un "CloseHandle ()" (o si esce), il contatore viene decrementato a zero, e l'oggetto è completamente liberato.

In altre parole, Windows recuperare la risorsa quando non è più utilizzato, se i processi di pulire con grazia a se stessi o meno.

E no, anche se si apre un file per l'accesso esclusivo, il file stesso non verrà "bloccato" una volta che l'handle di file è chiuso (e Windows si chiuderà automaticamente quando il programma termina).

Altri suggerimenti

Quando il programma termina - non importa con quali mezzi -. Il file, se esiste ancora, non saranno più bloccati dal processo ... perché il processo non esiste

Ma devo meraviglia; se il file è solo di essere eliminato in ogni caso, alla fine, non si ha realmente bisogno di creare un file , in primo luogo?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top