lkml.org 
[lkml]   [1998]   [Sep]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] Speeding up FAT operations
    I think it depends on the system call you use, your expecting DOS to be
    conistant and I can tell you it's not.
    I seem to remember a problem in gr 11 with students accidentally creating
    files with spaces using wordperfect and then WP refusing to read them.
    I know _some_ of them will handle spaces but not all, I've seen it done.

    Gerhard

    On Thu, 24 Sep 1998, Richard B. Johnson wrote:

    > On 23 Sep 1998, H. Peter Anvin wrote:
    >
    > > Followup to: <Pine.LNX.3.95.980923084335.832D-100000@chaos.analogic.com>
    > > By author: "Richard B. Johnson" <root@chaos.analogic.com>
    > > In newsgroup: linux.dev.kernel
    > > >
    > > > > This may not mean much, but two years ago when I first started learning a
    > > > > computer I was learning QBASIC. And I read a post somewhere of an error in
    > > > > QBASIC that would allow you to make a space in the name that no other program
    > > > > could read except another QBASIC program that opened it the same way. It was
    > > > > something like the following... (I haven't touched it for over a year and a
    > > > > half so it may not be completely accurate)
    > > > >
    > > > > open "blah hi" as binary #1 (or something like this)
    > > > > print #1, "jkfsdjlkfsdjkl"
    > > > > close #1
    > > > >
    > > > > Then you can open "blah hi" with the QBASIC program again.
    > > > >
    > > > > The system never reported it as an error or anything, and it would show up as
    > > > > a valid file when you did a DIR. In fact, when you got a directory listing,
    > > > > it would show it with the space.
    > > > >
    > > >
    > > > Yes. A DOS File-System emulator cannot assume that DOS file-names are
    > > > all in upper case. It also can't assume that it contains "valid"
    > > > characters. DOS File names are not supposed to contain '.', ' ', etc.,
    > > > but they can.
    > > >
    > >
    > > Hang on! That's a different thing -- you can't create those files
    > > with DOS system calls. Space *IS* a legal character in DOS filenames
    > > -- the system calls will happily accept it, although the shell won't
    > > (although it will match it against ?).
    > >
    > > -hpa
    >
    > The systems calls will not accept a space even though a MS-DOS file-
    > name of "1" is really "1 " on the physical disk. Try it.....
    >
    > pseg segment para public 'code'
    > assume cs:pseg, ds:pseg, es:pseg, ss:pseg
    > org 100h
    > main proc near
    > jmp short foo
    > ;fname db ' ',0 ; Bad
    > ;fname db 'z',0 ; Okay
    > ;fname db '.',0 ; Bad
    > ;fname db 0e5h,0e5h,0 ; Okay
    > ;fname db 27,'[H',27,'[J',0 ; Bad
    > ;fname db 1,2,3,4,5,0 ; Bad
    > ;fname db 127,128,129,0 ; Good
    > fname db '55',248,'C',0 ; Good
    > badfile db 'Bad file name.',0dh,0ah,'$'
    > good db 'Good!',0dh,0ah,'$'
    > main endp
    > ;
    > foo proc near
    > mov dx,offset fname ; Point to file name
    > xor cx,cx ; Normal file attributes
    > mov ax,3c00h ; MS-DOS Create function
    > int 21h
    > jc bad ; Was bad, can't create.
    > mov bx,ax ; Good, get handle
    > mov ax,3d00h ; MS-DOS Close function
    > int 21h
    > mov dx,offset good ; Point to 'Good' string.
    > jmp short prnt ; Print and exit
    >
    > bad: mov dx,offset badfile ; Point to bad file name string
    > prnt: mov ax,0900h ; MS-DOS print-string
    > int 21h
    > quit: mov ax,4c00h ; MS-DOS exit normal
    > int 21h
    > foo endp
    > ;
    > pseg ends
    > end main
    >
    >
    > 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.
    >
    > 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/
    >

    --
    Gerhard Mack
    irc-admin skyline.starchat.net

    gmack@imag.net
    InnerFIRE@starchat.net

    As a computer I find your faith in technology amusing.



    -
    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/

    \
     
     \ /
      Last update: 2005-03-22 13:44    [W:0.028 / U:1.228 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site