MS-DOS normally uses a backslash, `\', to separate name units within a file name, instead of the slash used on other systems. Emacs on MS-DOS permits use of either slash or backslash, and also knows about drive letters in file names.
On MS-DOS, file names are case-insensitive and limited to eight characters, plus optionally a period and three more characters. Emacs knows enough about these limitations to handle file names that were meant for other operating systems. For instance, leading dots `.' in file names are invalid in MS-DOS, so Emacs transparently converts them to underscores `_'; thus your default init file (see section The Init File, `~/.emacs') is called `_emacs' on MS-DOS. Excess characters before or after the period are generally ignored by MS-DOS itself; thus, if you visit the file `LongFileName.EvenLongerExtension', you will silently get `longfile.eve', but Emacs will still display the long file name on the mode line. Other than that, it's up to you to specify file names which are valid under MS-DOS; the transparent conversion as described above only works on file names built into Emacs.
The above restrictions on the file names on MS-DOS make it almost impossible to construct the name of a backup file (see section Single or Numbered Backups) without losing some of the original file name characters. For example, the name of a backup file for `docs.txt' is `docs.tx~' even if single backup is used.
If you run Emacs as a DOS application under Windows 9X, you can
turn on support for long file names. If you do that, Emacs doesn't
truncate file names or convert them to lower case; instead, it uses the
file names that you specify, verbatim. To enable long file name
support, set the environment variable
LFN to `y' before
starting Emacs. Unfortunately, Windows NT doesn't allow DOS programs to
access long file names, so Emacs built for MS-DOS will only see their
short 8+3 aliases.
MS-DOS has no notion of home directory, so Emacs on MS-DOS pretends
that the directory where it is installed is the value of
environment variable. That is, if your Emacs binary,
`emacs.exe', is in the directory `c:/utils/emacs/bin', then
Emacs acts as if
HOME were set to `c:/utils/emacs'. In
particular, that is where Emacs looks for the init file `_emacs'.
With this in mind, you can use `~' in file names as an alias for
the home directory, as you would in Unix. You can also set
variable in the environment before starting Emacs; its value will then
override the above default behavior.
Emacs on MS-DOS handles the directory name `/dev' specially, because of a feature in the emulator libraries of DJGPP that pretends I/O devices have names in that directory. We recommend that you avoid using an actual directory named `/dev' on any disk.
Go to the first, previous, next, last section, table of contents.