Я хочу освободить все открытые файлы и каталоги, прежде всего моя программа открылась во время ее выполнения. Я хочу сделать это, потому что у меня очень большая программа, и она открывает много файлов и каталогов, которые я не могу отслеживать. Есть ли способ сделать это? означает, что я хочу получить список всех открытых файлов и каталогов и закрыть их при выходе.
Я знаю регистрацию обработчиков выхода, используя функцию atexit (). Можно ли с этим что-то сделать?
Edit:
У меня есть Cygwin на Windows. Я хочу сделать вышеуказанное, потому что ресурсы моей программы не освобождаются автоматически. У меня есть каталог, который создается и затем открывается с помощью opendir (). После завершения работы моей программы, когда я пытаюсь удалить этот каталог, появляется сообщение «невозможно удалить, поскольку используется другой программой». Но когда я завершаю работу с explorer.exe и снова перезагружаюсь, только я могу удалить этот каталог.
Проблема в том, что это происходит неравномерно. Я могу удалить некоторые каталоги и не могу удалить некоторые.