2005年11月18日
川俣晶の縁側ソフトウェアその他開発日誌 total 2447 count

NT版UNIX-like toolsのxeqで、コマンドの実行が終了していないのにプロンプトが表示される問題【対応】

Written By: 川俣 晶連絡先

 NT版UNIX-like toolsのxeqで、コマンドの実行が終了していないのにプロンプトが表示される問題を解消しました。

 詳細はNT版UNIX-like toolsのxeqで、コマンドの実行が終了していないのにプロンプトが表示される問題で説明しています。

 以下のVersion 0.11で修正されています。

原因 §

 DOSとNTカーネル(か、あるいはCライブラリ実装)での子プロセスの起動の挙動の違いでした。

 DOS上のspawnのP_OVERLAYで子プロセスを起動した場合、子プロセスが終了するまでコマンドプロンプトに戻りません。しかし、NTカーネルでは親プロセスが即座に終了した時点でコマンドプロンプトに戻りますが、子プロセスは処理を継続します。

 そこで、子プロセスが終了するまで、親プロセスの終了を待ち、ついでにプロセスの終了値も親プロセスがバイパスするようにしました。