首页 > 解决方案 > linux 中的 force kill 命令(kill -9)是否使用 C++ 应用程序中的 new 运算符清理动态分配的内存?

问题描述

我有一个要在 Oracle Linux OS 上运行的 C++ 应用程序。

考虑一下,我用new运算符创建了几个对象。虽然我已经使用 delete 操作符来释放它,但是 force kill 命令不会达到这个实现。

但是,如果我强制 kill ( kill -9) 进程,动态分配的内存(使用new运算符)会被操作系统取消分配吗?由于我无法找到直接的答案,因此我想了解一些信息。

提前致谢。

标签: c++linuxmemory-managementlinux-kernelvirtual-memory

解决方案


但是,如果我强制 kill ( kill -9) 进程,动态分配的内存(使用new运算符)会被操作系统取消分配吗?

内存通过虚拟内存系统和内存管理单元 (MMU) 与进程绑定。因此,是的,所有内存(不仅仅是通过 分配的内存new)都将被释放。

例外情况是全局进程间通信 (IPC) 资源,如共享内存、缓存文件等。


推荐阅读