Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




Next: , Previous: MS-DOS and MULE, Up: MS-DOS

G.8 Subprocesses on MS-DOS

Because MS-DOS is a single-process “operating system,” asynchronous subprocesses are not available. In particular, Shell mode and its variants do not work. Most Emacs features that use asynchronous subprocesses also don't work on MS-DOS, including Shell mode and GUD. When in doubt, try and see; commands that don't work output an error message saying that asynchronous processes aren't supported.

Compilation under Emacs with M-x compile, searching files with M-x grep and displaying differences between files with M-x diff do work, by running the inferior processes synchronously. This means you cannot do any more editing until the inferior process finishes.

Spell checking also works, by means of special support for synchronous invocation of the ispell program. This is slower than the asynchronous invocation on other platforms

Instead of the Shell mode, which doesn't work on MS-DOS, you can use the M-x eshell command. This invokes the Eshell package that implements a Posix-like shell entirely in Emacs Lisp.

By contrast, Emacs compiled as a native Windows application does support asynchronous subprocesses. See Windows Processes.

Printing commands, such as lpr-buffer (see Printing) and ps-print-buffer (see PostScript), work in MS-DOS by sending the output to one of the printer ports. See MS-DOS Printing.

When you run a subprocess synchronously on MS-DOS, make sure the program terminates and does not try to read keyboard input. If the program does not terminate on its own, you will be unable to terminate it, because MS-DOS provides no general way to terminate a process. Pressing C-c or C-<BREAK> might sometimes help in these cases.

Accessing files on other machines is not supported on MS-DOS. Other network-oriented commands such as sending mail, Web browsing, remote login, etc., don't work either, unless network access is built into MS-DOS with some network redirector.

Dired on MS-DOS uses the ls-lisp package where other platforms use the system ls command. Therefore, Dired on MS-DOS supports only some of the possible options you can mention in the dired-listing-switches variable. The options that work are ‘-A’, ‘-a’, ‘-c’, ‘-i’, ‘-r’, ‘-S’, ‘-s’, ‘-t’, and ‘-u’.

  Published under the terms of the GNU General Public License Design by Interspire