只能进程本身回收?有办法吗?
没懂你这句话,“回收”是什么意思?
一个进程如果退出(正常或异常),它所占有的所有资源(打开没关的fd,malloc()但没free()的内存,没有destroy的mutex/condvar…)都由操作系统作善后处理并回收。
唯一操作系统不能回收的,是如果进程开了共享内存,而有别的进程正在共享。
一个进程用malloc()的内存异常退出后系统会自动回收吗?可是好像不是这样
可以挂载signal函数啊,把异常的信号捕捉到,然后在这个函数里释放内存。
会,系统应该保证自动回收。否则就是操作系统有问题了。