ログ ファイル (.txt) 処理を行う Win32 コンソール アプリケーション (Visual Studio から Win32 コンソール プロジェクトとしてビルド) があります。この Win32 コンソール アプリケーションを起動し、完了したら停止する必要がある別の perl プログラム (レガシー プログラム) があります。
Perl プログラムは、Win32::Process API を使用して Win32 コンソール アプリのインスタンスを開始します。「kill -x pid」または Win32:Process:Kill のいずれかで実行すると、コンソール アプリを強制終了できます。問題は、ログ処理をフラッシュできるように、コンソール アプリが強制終了/終了されているかどうかを知る必要があることです。コンソール アプリは既に SetConsoleCtrlHandler API を介してハンドラーを登録していますが、perl プログラムから kill -2/3 pid によって強制終了されたときに呼び出されません。
- Perl プログラムまたは Win32 コンソール アプリで何を変更して、いつ終了したかを認識できるようにしますか?
ありがとう!