linux c创建子进程

*前言

了解fork()函数 

一个进程调用fork()函数创建该进程子进程,系统会为该子进程分配资源存储数据和代码的空间,父进程将数据和代码复制给子进程,子进程按父进程代码重新执行,即克隆了父进程并重新执行。

fork()函数的返回值,-1即fork失败,值为0时即子进程,返回值大于0即子进程id;

c代码样例:

#include <stdio.h>
#include <unistd.h>

int main(int arg,char* argv[]){

   // int 被 typedef为 pid_t
   pid_t pid=fork();

   // 当pid==0时,是子进程代码运行区域。其他则是父进程运行区域。
   if(pid<0){
	   printf("Create child process failure ...\n");

   }else if(pid==0){
	   //子进程执行体
	  printf("Hi i am child process ,my processId is %i \n",getpid());
   }
   else{
	   //父进程执行体
	   printf("parent process is run ,myid is %i \n",getpid());
   }


   // 执行体结束标志
   if(pid==0)
   {
	  printf("pid=%i child process end ... \n",getpid());
   }
   else{
	   // 睡眠5s,等待子先进程结束
	   sleep(5);
	   printf("pid=%i Parent process End ... \n",getpid());
   }

	return 0;
}

运行结果:

           

  

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值