如果我隐式调用 exit() :
int main(){
return 0; /*exit(0) is being called */
}
或明确:
int main(){
exit(0);
return 0; /* this is never reached */
}
终点是相同的:正在调用exit() 。现在根据一些消息来源,exit()将使进程在将控制权交还给操作系统之前进行一些清理。
我知道最终内核(操作系统)将释放所有资源。那么在将控制权交给内核之前清理进程有什么特别之处呢?这个清理究竟是什么?为什么是必要的?进程如何知道要清理什么?