c++ - linux 中的 force kill 命令 (kill -9) 是否会在 C++ 应用程序中使用 new 运算符清理动态分配的内存?

标签 c++ linux memory-management linux-kernel virtual-memory

我有一个要在 Oracle Linux OS 上运行的 C++ 应用程序。
考虑一下,我用 new 创建了几个对象。运算符(operator)。虽然我已经使用 delete 操作符来解除分配它,但是 force kill 命令不会到达这个实现。
但是,如果我强制终止( kill -9 )进程,动态分配的内存(使用 new 运算符)是否会被操作系统取消分配?由于我无法找到直接的答案,因此我想了解一些信息。
提前致谢。

最佳答案

But, if I force kill (kill -9) the process, will the dynamically allocated memory (using new operator) be de-allocated by the operating system?


内存通过虚拟内存系统和内存管理单元 (MMU) 与进程相关联。因此,是的,所有内存(不仅仅是通过 new 分配的内存)都将被释放。
异常(exception)情况是全局进程间通信 (IPC) 资源,例如共享内存、缓存文件等。

关于c++ - linux 中的 force kill 命令 (kill -9) 是否会在 C++ 应用程序中使用 new 运算符清理动态分配的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63668226/

相关文章:

linux - 当在 linux 上以 root 身份从 tmp 目录运行进程时,进程会记住 dir,并在删除 dir 时导致错误

linux - Linux 容器的应用程序隔离?

java - 记录java应用程序的cpu使用情况

java - 在 Java 中为 JOGL 释放直接缓冲区 native 内存

linux - 如何自动打开带有命令的拆分终端

c++ - 将 std::vector 分配给堆上特定内存位置的正确语法?

c++ - 在 C++ 中确定字符串的每个单词中的字母数量

c++ - 特征检测和匹配 - 视网膜图像

c# - CLR 中的派生类能否拦截/隐藏父类的方法,同时仍保持智能感知?

c++ - Pimpl成语: What size_type to use if implementation is unknown?