Previous: , Up: EmacsとMS-DOS   [Contents][Index]


H.12.7 MS-DOSでのサブプロセス

MS-DOSは単一プロセスの“オペレーティングシステム”なので、非同期サブプロセスは利用できません。特にShellモードと、その変種は機能しません。非同期サブプロセスを使用するEmacs機能のほとんどは、ShellモードやGUDを含めて、MS-DOSでは動作しません。疑わしいときは、コマンドを実行してみれば、機能しない場合は非同期プロセスがサポートされない旨を告げるメッセージが出力されます。

M-x compileによるEmacsでのコンパイル、M-x grepによるファイル検索、M-x diffによるファイル間の相違の表示は、同期的に内部プロセスを実行することにより機能します。これはその内部プロセスが終了するまで、編集を行なうことができないことを意味します。

ispellプログラムの同期呼び出しにたいする特別なサポートにより、スペルチェックも機能します。これは他のプラットフォームでの非同期呼び出しより遅くなります。

MS-DOSでは、機能しないShellモードのかわりに、M-x eshellコマンドを使用することができます。これはPOSIX-likeなシェルを、Emacs Lispで実装したEshellパッケージを呼び出します。

対照的に、ネイティブなWindowsアプリケーションとしてコンパイルされたEmacsは、非同期サブプロセスをサポートします Windows 9X/MEおよびWindows NT/2000/XP/Vista/7/8/10でのサブプロセスを参照してください。

lpr-buffer (ハードコピーの印刷を参照)と、ps-print-buffer (PostScriptのハードコピーを参照)は、プリンターポートの1つに出力を送ることにより、MS-DOSでも機能します。印刷とMS-DOSを参照してください。

MS-DOSでサブプロセスを同期実行する場合は、そのプログラムが終了することと、そのプログラムがキーボード入力の読み取りを試みないことを確認してください。プログラムが自分で終了しない場合、それを終了させることはできません。なぜならMS-DOSはプロセスを終了させる一般的な方法を提供しないからです。このような場合、C-cC-Breakを押すことが助けになる場合もあります。

MS-DOSでは、他のマシンにあるファイルへのアクセスもサポートされません。何らかのネットワークリダイレクト処理により、MS-DOSにネットワークアクセス機能が組み込まれていない限り、メール送信、ウェブ閲覧、リモートログインなどのようなネットワーク指向のコマンドは機能しません。

MS-DOSのDiredはls-lispパッケージを使用します (MS-Windowsでのlsのエミュレーションを参照してください)。 したがってMS-DOSのDiredは、変数dired-listing-switchesに記述できる、利用可能なオプションは限られます。機能するオプションは‘-A’、‘-a’、‘-c’、‘-i’、‘-r’、‘-S’、‘-s’、‘-t’、‘-u’です。