私が発見した fork(2) コマンドを必要とする shotgun と呼ばれる Ruby gem を使用しようとしていますが、これは Linux コマンドであり、Cygwin で使用できる可能性があります。Windows コマンド シェルから使用できるようにすることはできますか?
1 に答える
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 を認識させる必要があります。