c++ - 给出进程的 kill 命令时如何处理分配的内存?

标签 c++ unix operating-system

假设我正在运行我的应用程序。在此期间,我的代码中为各种对象分配了内存。现在我在我的 unix 终端上为这个进程执行一个 kill 命令。在那种情况下,所有的内存释放过程是如何发生的?这是否完全由操作系统通过为进程释放整个内存来处理?

最佳答案

一般来说,在进程终止时,这个进程分配的所有资源都会被操作释放 系统。 (见 3.3.2 操作系统概念,作者:Abraham Silberschatz、Peter B. Galvin、Greg Gagne http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720 )

kill 命令不会“杀死”进程,而是向它发送信号。如果信号是 SIGKILL(kill -9 PID),你什么也做不了。进程被无条件杀死。如果信号是 SIGTERM(默认),您可以提供或忽略它。请参阅:http://en.wikipedia.org/wiki/Unix_signal

关于c++ - 给出进程的 kill 命令时如何处理分配的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25961727/

相关文章:

c++ - 隐藏全局光标

c++ - 如何找到写入释放的内存(堆损坏)?

c++更改数字位?

c - fork 和现有线程?

opengl - 是否可以在 OpenGL 中一次保留所有状态?

c++ - Qt RTTI 麻烦

linux - Perl 中的 awk gsub

linux - 使用 awk 输入列

java - 创建文件后立即将其放入 S3

operating-system - sleep() 函数完成后是否会导致计时器中断?