一 、 进程的创建
1.fork();创建一个独立的进程
pid_t fork(void);
使用这个命令会创建一个独立于父进程而且拷贝父进程全部存储空间的子进程
返回值有三种情况
1.父进程会返回子进程的进程号,pid>0
2.子进程会返回0;pid = 0 ;
3.出错会返回-1 ; pid = -1;
使用模板:
if(pid > 0)
{
//父进程要执行的语句
}
else if(pid == 0)
{
//子进程的语句
}
else
{
//出错的语句。
}
获得本进程的pid getpid();
获得父进程的pid getppid();
如果父进程结束了而子进程并没有结束,子进程就会变成孤儿进程,最后由inti()回收
如果子进程技术而父进程没有结束,子进程将会变成僵尸进程,必须由父进程主动回收。
父进程回收子进程,使用函数wait(),父进程会等待子进程接受才会继续执行
如果父进程不想主动释放子进程可以使用一级缓冲
A -- > fork -- -- wait
B -- fork -- //子进程在在建立一个进程,让真正程序为孤儿进程,使用init来回收
C -- end
2.使用exec函数族
int exe