Re: Version 2.1.70 ms-dos fs strange.

Richard B. Johnson (root@chaos.analogic.com)
Sat, 6 Dec 1997 22:43:27 -0500 (EST)


On Sat, 6 Dec 1997, Rogier Wolff wrote:

> Bill Hawes wrote:
> >
> > Richard B. Johnson wrote:
> > > # ls /tmp/*.bak
> > > ls: /tmp/*.bak: No such file or directory
> > > # ls /dos/drive_C/*.bak
> > > ls: /dos/drive_C/*.bak: Invalid argument
> > > # exit
> > > exit
> > >
> > > Script done on Fri Dec 5 19:34:44 1997
> > >
> > > Synopsis:
> > > `ls` for a nonexistant file under ext2 results in ENOENT.
> > > `ls` for a nonexistant file under msdos results in EINVAL.
> > > NotGood(tm)
> >
> > Apparently what happens is that when no files match the pattern *.bak,
> > ls tries to stat the name '*.bak', which is an invalid filename under
> > DOS.
>
> Very minor nitpick: Some shells pass the "pattern" on litterally when
> it doesn't match anything. This allows you to do

[SNIPPED]

But it doesn't happen with *.lib, *.obj, etc. They are all valid
file-name extensions under MS-DOS as is *.bak. MS-DOS file names can
be either upper or lower case, although COMMAND.COM maps everything
to upper case which makes lower-case file names a bit hard to delete.

You can't start a ms-dos file name with 0xe5 (means erased file), and
you can't have more than "filename.typ" characters. That's all. The
'.' is never put into the file-name. The above example results in
FILENAMETYP as a directory entry.

Cheers,
Dick Johnson

Richard B. Johnson
Project Engineer
Analogic Corporation
Penguin : Linux version 2.1.70 on an i586 machine (66.15 BogoMips).
Warning : It's hard to remain at the trailing edge of technology.