嵌入式培训经验分享——进程的创建和释放

这篇博客介绍了如何在Unix/Linux系统中使用fork()创建新进程,以及如何通过exit()和wait()函数来释放和回收子进程。文章详细阐述了fork()函数的工作原理,以及exit()如何导致进程成为僵尸进程,强调了wait()在父进程回收子进程中的重要作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、如何创建一个新的进程:

        使用fork()函数:

        使用fork函数可以产生一个与父进程一模一样的新的进程,称为子进程,同时两个进程之间可以执行不同的任务。

#include <stdio.h>

int main()
{
	int aa = 0;
	printf("I am process pid=%d ppid=%d\n", getpid(),getppid() );
	/*
		int fork();
	*/
	int pid = fork();
	if(pid >0){
		while(1){
			aa++;
			printf("I am father pid=%d ppid=%d\n",getpid(),getppid());
			sleep(1);
		}
	}else if(pid==0){
		while(1){
			printf("I am child pid=%d ppid=%d\n",getpid(),getppid());
			printf("child aa=%d\n",aa);
			sleep(1);
		}
	}
}

    2、如何将创建的进程释放:

使用exit()函数结束进程,但是在结束进程之后,进程并没有被完全回收,会成为一个僵尸进程,需要等待父进程去完全回收释放。

#include <stdio.h>

int main()
{
	int aa = 0;
	printf("I am process pid=%d ppid=%d\n", getpid(),getppid() );
	/*
		int fork();
	*/
	int pid = fork();
	if(pid >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值