опасности _exit () - утечка памяти? - PullRequest
3 голосов
/ 15 сентября 2010

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

Ответы [ 3 ]

4 голосов
/ 15 сентября 2010

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

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

4 голосов
/ 15 сентября 2010

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

0 голосов
/ 15 сентября 2010

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

...