创建一个进程:运行一个可执行程序。  那么如何在代码中创建一个新的进程?

  那就要利用到fork函数了 : pid_t  fork(void)

  fork函数调用一次,返回两次! 在新创建的进程中返回一次(返回值为0),在原来的进程中返回一次(返回值为新进程的PID值)

  fork函数调用完成后,两个进程都从fork之后开始执行。

  fork函数复制出新进程后,两个进程成为独立的个体,互相不影响,各自执行,并且并不确定哪个进程先执行。

 

下面举三个例子来解析这个函数

1、

          

可以看出输出为3A3B ,因为fork函数复制出的新进程与旧进程相互独立,并不能确定哪个先结束,所以上面并不是唯一的输出顺序。

2、

      

这段代码在与上面那段的区别是在printf中未加“\n”,可以看出两者输出的结果也有所不同。这次的输出结果是4A4B。

未加“\n”,输出缓冲区未被刷新,新进程复制时将缓冲区内容一并复制。

3、

          

 

结果为2A1B。