ARM/Linux内存泄漏:用户程序终止后能否保留内存?

ARM/Linux内存泄漏:用户程序终止后能否保留内存?,linux,memory-leaks,Linux,Memory Leaks,我的某个地方有内存泄漏,但它似乎与我的程序无关。我之所以做出这一大胆的声明,是基于这样一个事实:一旦我的程序终止,无论是通过seg故障、退出还是中止,内存都不会恢复。如果我的程序是罪魁祸首,我会假设MMU会恢复一切,但事实并非如此 我的问题是: 在运行仅使用堆栈内存和少量malloc调用的程序的小型Linux系统64 Mb Ram上,是什么原因导致我也看到内存耗尽,并且在程序终止后仍处于耗尽状态 一个相关的问题是: 这一切都始于相关代码将其stdout、stderr定向到一个文件之后。几个小时后

我的某个地方有内存泄漏,但它似乎与我的程序无关。我之所以做出这一大胆的声明,是基于这样一个事实:一旦我的程序终止,无论是通过seg故障、退出还是中止,内存都不会恢复。如果我的程序是罪魁祸首,我会假设MMU会恢复一切,但事实并非如此

我的问题是:

在运行仅使用堆栈内存和少量malloc调用的程序的小型Linux系统64 Mb Ram上,是什么原因导致我也看到内存耗尽,并且在程序终止后仍处于耗尽状态

一个相关的问题是:


这一切都始于相关代码将其stdout、stderr定向到一个文件之后。几个小时后,它因分段错误而中止。快速天真?查看/proc/meminfo显示,没有太多可用内存,所以我假设有什么东西在泄漏

看来我没有内存泄漏,但这确实让我产生了一些新问题

事实证明,写块设备可以使用相当多的物理内存;在我的系统中只有64兆,因此将数百兆写入USB驱动器会大大增加缓存、活动和非活动内存池

卸载设备时,这些内存池会立即释放到可用内存池


我的分段错误的确切原因仍然是一个小谜,但我知道,通过更好地了解虚拟内存资源,特别是在块设备的使用方面,可以减少分段错误的发生。

您能解释一下,您看到了什么让您相信程序在终止后仍保留内存吗。我猜你误解了其他情况。我也是这么猜的。最近有人指出,我正在查看由块层缓存的内存。