linux:fork

fork创建出一个新进程,新的进程叫做子进程,原来的进程叫父进程,父进程返回子进程的pid(唯一标识一个进程),子进程最终返回0
pid_t == int 一共能够产生多少个进程,int能表示的范围 最大有32768
在这里插入图片描述

fork()一旦运行以后,首先为它申请一个pid,如果pid没法申请出来,就说明有可能达到了操作系统能够运行的最大数目了,所以pid申请失败了。也有可能一个用户进行进程过多,已经不能再去获取进程了

pid = 3456 (父进程) 和 pid = 3457 (子进程) 的唯一区别
pid = 3456 (父进程) 的返回值是子进程的id号
pid = 3457 (子进程) 的返回值是0,是强制为0的

问:以下代码执行完成后会打印出几个A?

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<assert.h>

int main()
{
	int i=0;
	for( ;i<2;i++)
	{
		fork();
		printf("A\n");
	}
	exit(0);
}

解析:
在这里插入图片描述

问:根据上面的代码进行修改,以下代码执行完成后会打印出几个A?

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<assert.h>

int main()
{
	int i=0;
	for( ;i<2;i++)
	{
		fork();
		printf("A");//此处去掉\n
	}
	exit(0);
}

解析:
在这里插入图片描述
问:以下代码执行完成后会打印出几个A?

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<assert.h>

int main()
{
	fork() || fork();
	printf("A");
	exit(0);
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值