5

私が発見した fork(2) コマンドを必要とする shotgun と呼ばれる Ruby gem を使用しようとしていますが、これは Linux コマンドであり、Cygwin で使用できる可能性があります。Windows コマンド シェルから使用できるようにすることはできますか?

4

1 に答える 1

7

fork(2)Windows プロセス モデルでは簡単に実行できないため、Cygwin では厄介です。Cygwin はそのスポーンにそれを使用させることができますが、実行可能データのコピー、開いているハンドルのコピーなど、Cygwin がすべてを手動でエミュレートする必要があるため、重大なパフォーマンス ヒットが発生します。

ショットガンの使用量に応じてfork(2)、このエミュレーションは苦痛を伴うか、比較的軽微なものになる可能性があります。

これは、 Win32での機能の欠如について議論しているGameDev.netの良いスレッドです。forkそれらは、私が調査する忍耐力やプラットフォームへのアクセシビリティを持っていないものをもたらしますが、確かに楽しく、危険で、同時に爆発的に聞こえます。

そのため、Win32 をバイパスしてネイティブ API ({Nt|Zw}CreateProcess) を呼び出す必要があります。本「Windows NT/2000 Native Api Reference」には、「Win32 プロセスのフォーク」の例があります。これはあなたが必要とするものかもしれません。

私は興味をそそられますが、Cygwin がそれを使用しているとは思えません。あなたの質問に対する私の答えを繰り返しますが、おそらくそこにあるでしょう。多くの Unix アプリは に依存してforkおり、Cygwin で利用できる可能性があります。奇跡を期待しないでください。エミュレーション層を含めるように再コンパイルして、Ruby に Cygwin を認識させる必要があります。

于 2009-11-29T08:08:12.590 に答える