Head First C 第九章 进程与系统调用 用fork()+exec()运行子进程
Head First C 第九章 进程与系统调用 用fork()+exec()运行子进程 问题引入 :当你想循环使用exec调用另外一个程序时,发现只调用了一次就结束了。这是因为, exec函数通过运行新程序来替换当前程序 ,因此,后面的代码都没有运行。 为了达到我们想要的效果,在此引入 fork() 系统调用。 实例:RSS订阅功能 int main(int argc, char *argv[]) { char *feeds[] = {"http://www.cnn.com/rss/celebs.xml", "http://www.rollingstone.com/rock.xml", "http://eonline.com/gossip.xml"}; int times = 3; int i; char *phrase = argv[1]; for (i = 0; i < times; i++) { char var[255] = {}; sprintf(var, "RSS_FEED=%s", feeds[i]); char *vars[] = {var, NULL}; if (execle("/usr/bin/python", "/usr/bin/python", "rssgossip.py", phrase, NULL, vars) == -1) { fprintf