CSAPP[8]异常控制流

1.回收子进程–Zombie态

  • 当一个进程由于某种原因终止时,内核并不是立即把它从系统中清除,而是被保持在一种已终止的状态中,直到被它的父进程回收。这个过程(已终止但未被回收)的进程称为僵死进程(zombie)。
  • 当父进程回收已终止的子进程时,内核将子进程的退出状态传递给父进程,然后抛弃已终止的进程。
  • 若父进程终止,内核会将其子进程“过继”给init进程,init进程的PID为1,它不会终止,是所有进程的祖先。

2.加载并运行程序

  • execve函数在当前进程的上下文中加载并运行一个新程序:包括可执行目标文件名、参数列表、环境变量列表。
int execve(const char* filename, const char* argv[], const char* envp[]);   //若加载成功则不返回,否则返回-1

猜你喜欢

转载自blog.csdn.net/qq_43118572/article/details/113900753
今日推荐