进程相关函数------>fork exec函数族 exit/_exit wait/waitpid
1.fork
作用:创建一个子进程
(创建方式:子进程复制了父进程的所有的内容,他和父进程的进程号不同)
pid_t fork(void);
无入参
返回值:创建失败 ,-1
创建成功 0或pid(0->子进程 子进程的进程号-->父进程)
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
int main()
{
pid_t pid=-1;
printf("hello nihao!!!!!\r\n");
pid = fork();
if(-1 == pid)
{
return -1;
}
if(0 == pid)//child process
{
printf("child process,pid=%d,parent pid=%d\r\n",getpid(),getppid());
}
else//pid > 0 parent process
{
printf("parent process,parent pid=%d,pid=%d\r\n",getpid(),pid);
}
printf("hello word!!!!!!!\r\n");
return 0;
}
孤儿进程:父进程先于子进程退出,子进程由init进程收养,此时子进程就是孤儿进程,pstree查看。孤儿进程可单独存在,没有危害。
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
int main()
{
pid_t pid=-1;
printf("hello nihao!!!!!\r\n");
pid = fork();
if(-1 == pid)
{
return -1;
}
if(0 == pid)//child process
{
sleep(10);
printf("chi