如果fork()是程序员唯一可使用的建立进程的手段,那么Linux 的性能会受很大影响。
因为fork()只能建立相同程序的副本。
幸运的是,Linux 还提供了系统调用exec 系列,它可以用于新程序的运行。
exec 系列中的系统调用都完成相同的功能,它们把一个新程序装入调用进程的内存空
间,来改变调用进程的执行代码,从而形成新进程。如果exec 调用成功,调用进程将被覆
盖,然后从新程序的入口开始执行。这样就产生了一个新的进程,但是它的进程标识符与
调用进程相同。这就是说,exec 没有建立一个与调用进程并发的新进程,而是用新进程取
代了原来的进程。所以,对exec 调用成功后,没有任何数据返回,这与fork()不同。