delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2001/08/06/08:42:35

X-Authentication-Warning: new-smtp1.ihug.com.au: Host p46-tnt4.syd.ihug.com.au [203.173.134.46] claimed to be acceleron
Message-ID: <00ce01c11e6c$5858cb40$0a02a8c0@acceleron>
From: "Andrew Cottrell" <acottrel AT ihug DOT com DOT au>
To: "Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il>,
"Charles Sandmann" <sandmann AT clio DOT rice DOT edu>
Cc: <djgpp-workers AT delorie DOT com>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 1010806094425 DOT 20688D-100000 AT is>
Subject: Re: Windows 2000 /dev/null permission query
Date: Mon, 6 Aug 2001 21:38:39 +1000
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.50.4522.1200
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200
Reply-To: djgpp-workers AT delorie DOT com

> On Sun, 5 Aug 2001, Charles Sandmann wrote:
>
> > OK.  More info here, and you are not going to like it :-P
>
> You are right: I don't like it ;-)
Add me to the list.
>
> > I added a call to _get_dev_info for NUL - and it returns 0, it's not
> > a character device ...
>
> Does "ls -l NUL" say that it's a character device?
DJGPP_204 D:\dj204\contrib\touch>set LFN=y

DJGPP_204 D:\dj204\contrib\touch>ls -l nul
-rw-r--r--   1 AC       root            0 Jan  1  1980 nul

DJGPP_204 D:\dj204\contrib\touch>ls -l NUL
-rw-r--r--   1 AC       root            0 Jan  1  1980 NUL

DJGPP_204 D:\dj204\contrib\touch>set LFN=n

DJGPP_204 D:\dj204\contrib\touch>ls -l NUL
crw-r--r--   1 AC       root       0,   0 Aug  6 21:30 NUL>

I can't rememebr my Ui*x days to decode the 'c' in the permissions feilds.
Some interesting diffreences:
    1) check out the times as the last one was when I ran the ls command.
    2) The ls with LFN=n has an extra 0, in the line

> > Now, thinking about the other problems we had noticed, I then did a
> > set lfn=n ...
> >
> > Now, the write of zero bytes to NUL works fine.  And _get_dev_info
> > returns lots of bits (but I don't need them now...)
> >
> > Touch a.a works with lfn=n but fails with lfn not set.
> >
> > Conclusion - LFN support in W2K is breaking things (like truncate,
> > utime, get_dev_info).  Handles opened with the LFN calls are not being
> > treated the same as those opened with the old DOS APIs.
>
> This might mean we need an exhaustive sweep of all the handle-related
> DOS calls, to see whether more of them are broken on W2K.  In
> particular, those Int 21h file-related functions used by the library
> should be all checked.
>
> (The bugs are probably due to the fact that LFN was added to W2K as a
> hindsight, unlike Windows 9X where it is simply a real-mode entry into
> Windows's own file-handling routines implemented around PM Int 21h.)
>
What's next?

Andrew

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019