fork函数:创建子进程

fork函数创建子程序原理:

fork函数:创建子进程_第1张图片

 关于fork函数函数几点说明:

1.fork函数返回的两个值不是在一个进程中返回的,而是父子进程各返回一个值,其中父进程返回子进程的PID,子进程返回0;

2.父子进程的执行顺序:谁先获得CPU谁先执行;

3.父子进程执行的代码逻辑:父进程执行PID>0的逻辑,子进程执行PID等于0的逻辑;

4.调用fork之后父子进程会一起并行执行,由原来一个进程变成两个进程。

创建子进程代码如下:

//fork函数测试
#include
#include 
#include 
#include 
#include 
#include 
using namespace std;

int main()
{
        cout << "before fork, pid:" << getpid() << endl;
        //创建子进程
        //pid_t fork(void);
        pid_t pid = fork();
        if(pid<0) //fork失败的情况
        {
                perror("fork error");
                return -1;
        }
        else if(pid>0)//父进程
        {
                cout << "father pid==" << getpid() <<   " fpid==" << getppid() << endl;
                sleep(1);
        }
        else if(pid==0) //子进程
        {

                cout << "child: " << getpid()<< " fpid==" << getppid() << endl;
        }

        cout << "after fork, pid:" << getpid() << endl;

        return 0;
}

~                                                                                                                                                                                
~                

结果如下:

fork函数:创建子进程_第2张图片

完结!!!! 

你可能感兴趣的:(linux)