创建一个进程:运行一个可执行程序。 那么如何在代码中创建一个新的进程?
那就要利用到fork函数了 : pid_t fork(void)
fork函数调用一次,返回两次! 在新创建的进程中返回一次(返回值为0),在原来的进程中返回一次(返回值为新进程的PID值)
fork函数调用完成后,两个进程都从fork之后开始执行。
fork函数复制出新进程后,两个进程成为独立的个体,互相不影响,各自执行,并且并不确定哪个进程先执行。
下面举三个例子来解析这个函数
1、
可以看出输出为3A3B ,因为fork函数复制出的新进程与旧进程相互独立,并不能确定哪个先结束,所以上面并不是唯一的输出顺序。
2、
这段代码在与上面那段的区别是在printf中未加“\n”,可以看出两者输出的结果也有所不同。这次的输出结果是4A4B。
未加“\n”,输出缓冲区未被刷新,新进程复制时将缓冲区内容一并复制。
3、
结果为2A1B。