最近好长时间没有更新博客,终极原因还是懒。
系统调用fork(),与_exit(), wait(),和execve()等系统调用都是有关于进程创建与终止的。
- 系统调用fork允许一个进程(父进程)创建新进程(子进程)
- 库函数exit负责终止进程,将进程占用资源释放,交还给系统
- 系统调用wait 父进程用来获取子进程状态
- 系统调用execve,加载一个新程序,执行新的程序
关于系统调用fork
pid_t fork(void);
fork()函数返回两次返回值,对父进程而言,返回值为-1时,代表创建子进程失败,返回值非0值时,这个返回值时子进程的pid。对子进程而言,返回值为0。
fork()函数的习惯用语是
pid_t childPid;
switch(childPid = fork()){
case -1:
<span style="white-space:pre"> </span>/*handle error*/
<span style="white-space:pre"> </span>case 0: