假设我正在运行我的应用程序。在此期间,我的代码中为各种对象分配了内存。现在我在我的 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/