gpt4 book ai didi

c - 通过 mmap 分配的内存没有 munmap 会在进程退出或终端后导致泄漏

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:50:34 34 4
gpt4 key购买 nike

有关于通过mmap分配内存的代码

void *ret = mmap(NULL, 4 * 1024, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);

当进程正常退出时,内存会归还给操作系统吗?

最佳答案

根据manunmap 下:

The region is also automatically unmapped when the process is terminated.

这听起来很合理,因为内存被添加到虚拟内存中的进程页面,虚拟内存在终止时被释放。

Opengroup没有就这个问题说任何话。

如果系统没有释放内存您可以尝试设置一个 at_exit 来清除任何仍然分配的内存映射,如果您可以找到指向它的指针,这些内存映射仍然有效。

关于c - 通过 mmap 分配的内存没有 munmap 会在进程退出或终端后导致泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33040770/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com