2009-11-29 21 views

回答

7

fork(2)是Cygwin下的kludgey,因为Windows进程模型不容易让它发生。 Cygwin的可以允许其产卵使用它,但你会遭受严重的性能损失为Cygwin的有仿效手工的一切 - 包括复制的可执行的数据,复制打开的句柄等

根据如何很多霰弹枪使用fork(2),这种模拟可能会很痛苦,或者可能相对较小。

这里是一个good thread on GameDev.net讨论在Win32上缺少一个fork工具。他们提出了一些我没有耐心或平台无障碍进行调查,但肯定听起来有趣,危险,并同时爆炸:

所以,你需要绕过Win32和调用本机API({Nt | Zw} CreateProcess)。本书“Windows Nt/2000 Native Api Reference”有一个例子“分叉Win32进程”。这可能是你需要的。

我很好奇,但我怀疑Cygwin使用它。这很可能是为了重申我对你的问题的回答 - 许多Unix应用程序都依赖于fork,而Cygwin可能使它可用。只是不要期待奇迹,你必须通过重新编译它来包含它的仿真层来让Ruby意识到Cygwin。

+0

很好的回复!我将在明天尝试使用Cygwin仿真层重新编译Ruby。如果它有效,那将会很棒;一些表现会很好。另一条路径听起来很冒险,而且需要大量的黑客攻击......但很高兴知道有什么可能。非常感谢! – picardo 2009-11-29 08:46:16

相关问题