调用fork()一次,父进程会返回子进程的pid(大于0),子进程返回0,如果调用失败则返回-1。下面看一下下面都会打印出什么结果。
模拟过程应该是下面的图:
第一次循环时,父进程打印一个B,子进程打印一个A,因为子进程和父进程都执行fork()之后的代码,所以第二次的时候,第一个进程会再打印一个A,一个B,第二个进程也会打印一个A,一个B,故一共是打印3个A,3个B。
下面来修改一下代码看看结果:
调用fork()一次,父进程会返回子进程的pid(大于0),子进程返回0,如果调用失败则返回-1。下面看一下下面都会打印出什么结果。
模拟过程应该是下面的图:
第一次循环时,父进程打印一个B,子进程打印一个A,因为子进程和父进程都执行fork()之后的代码,所以第二次的时候,第一个进程会再打印一个A,一个B,第二个进程也会打印一个A,一个B,故一共是打印3个A,3个B。
下面来修改一下代码看看结果: