Re: [PATCH] Speeding up FAT operations

Richard B. Johnson (root@chaos.analogic.com)
Thu, 24 Sep 1998 15:40:30 -0400 (EDT)


On Thu, 24 Sep 1998, H. Peter Anvin wrote:

> >
> > What GWBASIC used to do was create a file using the FCB function call
> > 0x16. Then, since it had the original File-Control-Block in its
> > address-space, it would put any characters it wanted, including
> > lower-case, in the FCB when it closed it. This is what got written
> > to the disk. This is also the way Peter Norton 'opened' a directory
> > as a file so that he could sort its contents.
> >
> > The original post was a warning that one should not assume that there
> > are no "incorrect" characters in a MS-DOS file-name. I can easily
> > create a file called "*.*" and or "???????????", which can cause some
> > problems with 'rm', etc., although such file-names are usually
> > 'created' during a disk error.
> >
>
> The FCB is a DOS system call. You can't create a file named
> ???????????? etc with even an FCB system call.
FILENAMETYP (you have one too many '?')
>
> -hpa
>

Why not??? Here it is from both MS-DOS and from Linux.

Script started on Thu Sep 24 15:33:25 1998
# ls /dos/drive_C
3com config.def include newc.bat tcpip
????????.??? config.sys inter newnet temp
amiboot contigu.ous io.sys norton testnet
autoexec.bat decnet jboot overlay tmp
bin dos lib pcplus tools
binb edt lib.tmp pctcp unreal
bit32 ems lint rangelan usnet
bomb etc lintx rfcard wina20.386
buslogic etd logfile rtip2.3 work
c600 exe masm save work.bat
cfgws.dat flash msdos.sys source xxx.asm
code float msvc src xxx.xxx
command.com frame netcard stdbus xy
# cat /dos/drive_C/xxx.xxx

Volume in drive C is DOS-622
Volume Serial Number is 2D42-15DD
Directory of C:\

3COM <DIR> 03-23-98 1:01p
AMIBOOT <DIR> 05-28-98 11:18a
BIN <DIR> 01-07-97 11:53a
BINB <DIR> 01-07-97 12:28p
BIT32 <DIR> 01-27-97 10:00p
BOMB <DIR> 01-26-97 2:58p
BUSLOGIC <DIR> 07-27-98 9:13a
C600 <DIR> 01-26-97 1:29p
CODE <DIR> 08-21-97 4:02p
DECNET <DIR> 01-07-97 11:45a
DOS <DIR> 01-26-97 2:31p
EDT <DIR> 03-07-97 9:43a
EMS <DIR> 01-07-97 12:28p
ETC <DIR> 01-07-97 12:28p
ETD <DIR> 01-07-97 12:28p
EXE <DIR> 01-07-97 12:28p
FLASH <DIR> 04-23-98 8:37a
FLOAT <DIR> 02-11-98 10:27a
FRAME <DIR> 04-14-98 10:12a
INCLUDE <DIR> 01-07-97 12:29p
INTER <DIR> 02-09-98 11:00a
JBOOT <DIR> 01-26-97 2:31p
LIB <DIR> 01-07-97 12:29p
LINT <DIR> 08-01-97 1:01p
LINTX <DIR> 01-07-97 12:30p
MASM <DIR> 01-07-97 12:30p
MSVC <DIR> 10-15-97 11:25a
NETCARD <DIR> 03-04-97 11:36a
NEWNET <DIR> 12-23-97 11:34a
NORTON <DIR> 01-07-97 12:30p
OVERLAY <DIR> 01-07-97 12:30p
PCPLUS <DIR> 01-07-97 12:30p
PCTCP <DIR> 01-07-97 12:30p
RANGELAN <DIR> 04-24-97 12:03p
RFCARD <DIR> 03-24-97 5:33p
RTIP2 3 <DIR> 10-14-97 6:06p
SAVE <DIR> 01-07-97 12:32p
SOURCE <DIR> 01-07-97 12:32p
SRC <DIR> 01-07-97 12:32p
STDBUS <DIR> 04-14-98 12:28p
TCPIP <DIR> 02-02-98 11:39a
TEMP <DIR> 01-07-97 12:44p
TESTNET <DIR> 12-15-97 8:27a
TMP <DIR> 01-07-97 12:44p
TOOLS <DIR> 01-07-97 12:32p
UNREAL <DIR> 07-10-98 1:06p
USNET <DIR> 03-04-97 11:30a
WORK <DIR> 01-26-97 3:52p
XY <DIR> 01-07-97 12:33p
AUTOEXEC BAT 1,445 07-08-98 11:50a
CFGWS DAT 959 01-07-97 11:48a
COMMAND COM 54,645 05-31-94 6:22a
CONFIG DEF 510 09-24-98 9:29a
CONFIG SYS 2,063 08-31-98 2:07p
CONTIGU OUS 123,000,000 07-07-98 1:37p
LIB TMP 0 09-18-98 10:21a
NEWC BAT 1,466 03-16-98 10:23a
WINA20 386 9,349 05-31-94 7:22a
WORK BAT 42 09-10-98 10:30a
XXX ASM 731 09-24-98 2:49p
???????? ??? 14 09-24-98 3:26p
XXX XXX 0 09-24-98 3:30p
62 file(s) 123,071,224 bytes
752,238,592 bytes free
# exit
exit

Script done on Thu Sep 24 15:34:08 1998

Incidentally, the file XXX.ASM, all 731 bytes, creates such a file-name
and I don't do anything special.

Cheers,
Dick Johnson
***** FILE SYSTEM WAS MODIFIED *****
Penguin : Linux version 2.1.118 on an i586 machine (66.15 BogoMips).
Warning : It's hard to remain at the trailing edge of technology.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/