exec()是程序中最后一行代码

exec()函数通过运行新程序来替换当前程序,那原来的程序去哪儿了?它终止了,而且是立刻终止,这就是为什么程序只为第一条RSS源运行了rssgossip.py脚本。程序在第一次调用execle()以后newshound程序就终止了。

exec()是程序中最后一行代码 - 图1

如果你想在启动另一个进程的同时让原进程继续运行下去,该怎么做?

exec()是程序中最后一行代码 - 图2

与Unix和Mac不同,Windows天生不支持fork()

如果想在Windows中使用fork(),必须先要安装Cygwin。

用fork()克隆进程

你可以用一个叫fork()的系统调用来解决这个问题。

fork()会克隆当前进程。新建副本将从同一行开始运行相同程序,变量和变量中的值完全一样,只有进程标识符(PID)和原进程不同。

原进程叫父进程,而新建副本叫子进程

克隆当前进程如何能解决exec()的问题?我们来看看。

exec()是程序中最后一行代码 - 图3