Google Summer of Code の課題であるNcatにLua 機能を実装しています。プロジェクトの一環として、可能な限り POSIX バージョンとの互換性を持たせるために、標準の入出力リダイレクト メカニズムを移植する必要があります。
POSIX バージョンでは、プロセスは 1 か所で分岐し、子プロセスの標準入力と標準出力は POSIX パイプにバインドされていました。次に、スクリプトを実行したコードが開始され、そこにあるすべての printf が親プロセスの関連する関数にリダイレクトされます。Windows コードでこの動作をエミュレートする方法は?
私が必要としているのは、スレッドの標準出力と標準入力を、 を使用して作成されたパイプにリダイレクトする方法CreatePipe
です。ここに現在の Ncat の Windows コードと、関連するコードを見つけるために達成しようとしている機能 (NCAT_LUA の grep) があります) 。プロジェクトは Windows でビルドできます。手順はこちら. 気軽に試してみてください。小さなテストケースを提供できなくて申し訳ありません。
関連する関数/システムコールへのドキュメントへのポインタ、使用できる代替アプローチ、コードの例、または同様の問題の解決策を採用するプロジェクトのソースコードへのリンクに本当に感謝しています。