Linux下怎样创建单个进程以及循环创建多个进程

linux下创建进程用到的函数是fork(),头文件为include<unistd.h>

linux下创建单进程

由于系统的原因,可能主进程会在子进程前结束,因此如果想要子进程先结束,可以让主进程先睡眠几秒

#include<iostream>
#include<unistd.h>

using namespace std;

int main()
{
        pid_t pid;

        pid = fork();
        if(pid == -1)
        {
                cout<<"fork error"<<endl;
        }
        else if(pid == 0)
        {
                cout<<"子进程"<<endl;
        }
        else
        {
                //sleep(3);   如果想要子进程先结束
                cout<<"主进程"<<endl;
        }
}

linux下创建多进程

由于子进程在创建后的下一次循环的时,会被当做主进程,因此,此处当创建子进程时,让其退出

如果这个地方不退出,那么创建的进程数量就不是想要的进程数量,子生子会有很多,而且父进程也无法控制

此处也可使用getpid()和getppid()来来显示他们的进程号和父进程号

#include<iostream>
#include<unistd.h>
#include<stdlib.h>
using namespace std;

int main()
{
        pid_t pid;

        int i;
        for(i=0;i<5;i++)
        {
                pid = fork();
                if(pid == -1)
                {
                        cout<<"fork error"<<endl;
                }
                else if(pid == 0)
                {
                        sleep(i);
                        cout<<"子进程"<<i<<"  "<<getpid()<<"    父进程id:"<<getppid()<<endl;
                        exit(1);     //子进程退出
                }
                else
                {
                        //父进程.继续循环
                }
        }
        if(i==5)     //只有父进程能进入
        {
                sleep(i);
                cout<<"主进程id: "<<getpid()<<endl;
        }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大学生毕设

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值