У меня создалось впечатление, что если приложение имеет открытый дескриптор, и он выходит из строя, дескриптор не освобождается, и если вы попытаетесь получить доступ к этому дескриптору (скажем, файла), вы получите ошибка.Что происходит с открытыми дескрипторами при сбое приложения? (Windows XP и далее)
Тем не менее, я пробовал это в Windows XP и, кажется, его отпустили, если я закрою exe из диспетчера задач, прежде чем он закрыл дескриптор. Ниже приводится код:
Private Sub Form_Load()
Dim iFile As Integer
iFile = FreeFile
Open "myfilelock" For Output Lock Read Write As #iFile
MsgBox "About to close" 'close it here with task manager
Close #iFile
End Sub
Таким образом, делает Windows XP и далее выпускать все открытые дескрипторы в случае ех, имеющий эти ручки аварию?
+1. Хотя, были версии Windows до Windows 95, которые вы знаете :) Это было неверно в 16-битной Windows, но я думаю, что это древняя история сейчас ... может быть, http://blogs.msdn.com/oldnewthing/archive/ 2004/03/01/82103.aspx – MarkJ