1

さまざまなフォークの実装方法の詳細を調べています。フォークの実装については、 http://doxygen.scilab.org/5.3/d0/d8f/forkWindows_8c_source.htmlのリンクを参照してください 。このフォークの実装は、ntdll によってエクスポートされた ZwXXX 関数を使用することによって行われます。

これをvs2012、Windows 7 -64ビットマシンでコンパイルできました。しかし、テストでは、期待される出力が得られません。フォークすると、新しい子プロセスが作成されますが、このプロセスは中断されたプライマリ スレッドを再開するとすぐに戻ります。fork 呼び出しを再び呼び出すことはありません。Windows用のフォークを実装しようとした人はいますか? このコード スニペットには何が欠けていますか? 過去 1 週間、さまざまなフォークの実装を調査してきました。助けてください。

4

1 に答える 1

0

fork APIをWindowsに移植しているときにも同様の問題があり、一時的な解決策を次のように使用しました。

  • 子プロセスの fork の後に Sleep () を追加します。
  • ctrl+F5 で親プロセスを実行します。
  • 次に、子プロセスを VS デバッガーにアタッチします。
  • F5 キーを使用してデバッグを続行します。
  • 親プロセスを VS デバッガーにアタッチすることもできます。

フォークされた子プロセスをデバッグするためのより良い解決策はありますか?

于 2012-09-07T11:25:54.920 に答える