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

NT版UNIX-like toolsのxeqで、xeqで起動するコマンドに|が含まれるとエラーになる問題

Written By: 川俣 晶連絡先

 NT版UNIX-like toolsのxeqで、起動するコマンドに|が含まれるとエラーになる問題を解消しました。

 たとえば、以下のコマンドがエラー終了し、実行できない問題を解決します。

xeq "dir|sort"

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

原因 §

 パイプ(|)を含むコマンドラインを1つの子プロセスとして実行させようとすると、これは失敗します。このようなコマンドは、シェル経由で実行する必要があります。(パイプはシェルが解釈するから)

 しかし、DOSとNTカーネルでは、失敗した場合に(Cライブラリの)errnoに格納される値が異なるようです。そこで、どちらの値も受け付けるように修正しました。

 詳しくは、上記配布ファイル中のxeq.cを参照して下さい。#ifdef WIN32を探せばすぐ見付かると思います。