进程创建 - fork #include<unistd.h> pid_t fork(void); 创建新的进程,失败时返回-1 成功时父进程返回子进程的进程号,子进程返回0 通过fork的返回值区分父进程和子进程 父子进程 子进程继承了父进程的内容 父子进程有独立的地址空间,互不影响 若父进程先结束 子进程成为孤儿进程,被init进程收养 子进程变成后台进程 若子进程先结束 父进程如果没有及时回收,子进程程序变成僵尸进程 进程 - 思考 子进程从何处开始运行? 从fork的下一条语句开始执行 父进程能否多次调用fork?子进程呢? 可以的,父进程每次调用fork就会创建一个子进程 子进程也可以调用fork 进程结束 - exit/_exit #include<stdlib.h> #include<unistd.h> void exit(int status); void _exit(int status); 结束当前进程并且将status第8位返回 exit结束进程时会刷新(流)缓冲区