2010-09-15 2 views
3

Извините, что повторил вопрос, который был задан несколько раз, но я не смог найти конкретное упоминание проблем с памятью. если процесс завершается с помощью _exit (0) или _Exit (0), может ли его блок памяти быть потерян для ОС? -nuun -nuunОпасности _exit() - утечка памяти?

ответ

4

Для любого потребителя O/S, которого не произойдет. Современные многопроцессорные операционные системы будут освобождать любые ресурсы, которые процесс может получить (память, блокировки, открытые файлы и т. Д.), Когда процесс завершается. Поэтому я обычно чувствую, что утечка памяти или ресурсов «не учитывается» как утечки, если я просто приобретаю их при запуске (не во время выполнения, возможно, неоднократно).

Однако все еще есть много встроенных/платформ реального времени, для которых это неверно. Если ваша программа может быть запущена на одном из них, вы должны быть скрупулезно об освобождении приобретенных ресурсов. Но даже там часто бывает проще просто перезагрузить устройство после каждого использования ...

4

Не на каких-либо достойных современных O/S (Unix, Windows, что угодно) - O/S будет восстанавливать память процесса, когда процесс умирает, независимо от того, насколько он умер.

0

В общем, нет. Операционные системы обрабатывают это для нас.

Смежные вопросы