当前位置: 首页 > 面试题库 >

使用Cygwin从Windows运行fork(2)。可能?

孙书
2023-03-14
问题内容

我正在尝试使用一个名为Shotgun的Ruby
gem,它需要fork(2)命令,而我发现这是一个Linux命令,可能在Cygwin中可用。是否可以通过Windows命令外壳使其可用?


问题答案:

fork(2)由于Windows进程模型不容易让它发生,因此在Cygwin的帮助下很麻烦。Cygwin可能允许其生成使用它,但是由于Cygwin必须手动模拟所有内容,包括复制可执行数据,复制打开的句柄等,因此您将遭受严重的性能损失。

根据shot弹枪的使用量fork(2),此模拟可能很痛苦,也可能相对较小。

这是GameDev.net上的一个好话题,讨论了forkWin32上缺少功能的问题。他们提出了一些我没有耐心或平台可访问性的内容,但同时听起来很有趣,危险且具有爆炸性:

因此,您需要绕过Win32并调用本机API({Nt | Zw} CreateProcess)。《 Windows Nt /
2000本机Api参考》一书中有一个示例“ Forking Win32 Process”。这可能就是您所需要的。

我很感兴趣,但是我怀疑Cygwin使用它。重申我对您的问题的回答可能就在这里-
许多Unix应用程序都依赖fork,而Cygwin可能会使其可用。只是不要指望奇迹,您必须通过重新编译Ruby来包含它的仿真层,从而使Ruby意识到Cygwin。



 类似资料:
  • 问题内容: 我最近一直在Windows上使用Cygwin。我想使用Windows安装的Python,因此在测试期间,我使用而不是。 除打印外,这几乎可以完美地工作。当我从Cygwin运行Windows Python时,直到执行完成才输出输出。它可以通过explorer.exe或cmd.exe在Windows Python中正常运行,并且可以使用Cygwin安装的Python()在Cygwin中运行

  • 问题内容: 我正在尝试编写一个BASH脚本来使我的Java程序运行(常见问题,对吗?)。我只是不能完全正常工作。经过多次编辑后,这是我尝试设置类路径然后执行程序的方法: 对不起,我只是想立即做所有事情。它告诉我找不到程序的主类!(( 有任何想法吗? 问题答案: Java类路径使用分号作为令牌分隔符。 使用反引号代替单引号 尝试:

  • 我有一堆shell脚本,以前是在Linux机器上运行的。现在,我们已经切换到Windows,我需要在那里运行这些脚本。我已经安装了Cygwin,但是有没有一种方法可以让脚本使用Cygwin运行,但是调用是从Windows批处理中进行的呢?

  • 我在Windows计算机上安装了cygwin并配置了openssh(ssh-host-config-y)。现在从网络上的一个Linux我有一个奇怪的行为: 没有.ssh(在Linux上),我使用密码成功连接 使用.ssh(和我在Windows的.ssh/authorized_keys上的公钥,我失败了(它不问我密码): 有什么建议吗?

  • 我需要在我的windows机器到UNIX服务器之间建立一个隧道,并希望自动化这个过程,以便在启动时为我生成隧道。 我用ssh和autossh安装了Cygwin,以连接到远程服务器,手动建立连接,并确认连接正常工作。这个过程涉及3个命令,这并不是很多,但这将是伟大的自动化。 包括。exe文件在内的第一部分用于打开Cygwin窗口,但我没有成功地将脚本输入其中。我甚至尝试在引用脚本文件之前包含一个--

  • 我一直在尝试为javafx编译和运行这个示例 然后我试着运行这个例子 $java--mode-path"PATH_TO_FX":mods-m hellofx/hellofx。HelloFX 启动层初始化时出错java.nio.file.InvalidPathException:非法字符 所以我认为通往FX的路径是个问题,但事实并非如此。 $java——模块路径src:mods-m hellofx/