У меня есть где-то утечка памяти, но, похоже, она не связана с моей программой. Я делаю это смелое заявление, основываясь на том факте, что после того, как моя программа завершится из-за ошибки сегментации, выхода или прерывания, память не восстанавливается. Если бы виновата была моя программа, я бы предположил, что MMU восстановит все, но, похоже, это не так.
Мой вопрос:
В небольшой системе Linux (64 МБ ОЗУ), в которой работает программа, использующая только стековую память и несколько вызовов malloc()
, по каким причинам я могу также увидеть, что память исчерпана и не работает после завершения моей программы?
Связанный с этим вопрос здесь:
Все это началось, когда рассматриваемый код направлял свой stdout, stderr в файл. Через несколько часов он прервался из-за «Ошибки сегментации». Быстрый (наивный?) взгляд на /proc/meminfo показал, что доступной памяти не так много, поэтому я предположил, что что-то протекает.