fork

1、fork函数原型:  pid_t fork( void);

2、fork函数的返回值:
      fork函数调用一次,返回两次(在新创建的进程中返回一次,调用fork的新进程返回一次)
      可能会有三种返回值:
       1)fork在子进程返回0
       2)在父进程中返回其子进程的pid
       3)如果出错,fork返回-1

3、fork的作用: 复制产生一个新进程,新进程为调用fork函数的这个进程的子进程。

4、父子进程:  fork之后,谁先运行,与操作系统的进程调度算法和当前计算机环境相关
                         父子进程独立,单独执行,运行顺序不唯一

5、格式:
     父进程和子进程都从fork之后的代码开始执行

     if(fork()==0)
     {子进程执行}
     else
     {父进程执行}

     父子进程都会执行

6、
程序一:


运行结果:AAB
程序执行流程如下:


程序二:


运行结果:AABBAB
程序执行流程如下:

去掉\n的结果:


运行结果:ABBABB

为什么去掉\n会产生这样的结果?这里 主要涉及printf缓冲区的问题。

输出时先放在缓存区,遇到下面四种情况才输出:
1)遇到"\n";
2)fflush(stdout);
3)程序结束(exit或return);
4)缓存区满。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值