[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: aux.* as filename

From: Brian Dessent
Subject: Re: aux.* as filename
Date: Tue, 26 Jun 2007 11:05:46 -0700

Paul Eggert wrote:

> Hmm, how is it that they are reserved for use by coreutils ports to
> Windows, and yet Microsoft's POSIX tools can create files named "aux"
> and the like?  Is there something that the coreutils porters should
> know?  Microsoft says "programs control the policy for creating files
> in Windows", which implies that coreutils should be able to Do The
> Right Thing here.  See: <http://support.microsoft.com/kb/120716>.

I think this has to do with whether you are using the Win32 API or the
Native API, i.e. the reserved-ness is at the Win32 layer, but if you use
lower level calls you can create them.  Cygwin does use the NT API for
some but not all calls, and in fact there was even a release of Cygwin
several years ago that accidently let users create files with these
reserved words.  However, all hell broke out on the mailing list because
people were able to create these files that were absolutely un-removable
by all normal means, because there are very few tools that don't use the
Win32 layer, including the standard Microsoft ones e.g. Windows
Explorer.  It caused a lot of user confusion, and subsequent releases of
Cygwin changed internally to disallow this again, so I think it would be
considered a bug to go back to this behavior.

(The Native layer is officially undocumented except for some common
entry points such as NtCreateFile(), but there is enough unofficial
reverse engineering such as <http://undocumented.ntinternals.net/> so
that it is relatively well understood.  As a very rough analogy to POSIX
systems, using it might be likened to making direct int 0x80 syscalls on
a POSIX system rather than going through the libc... i.e. somewhat


reply via email to

[Prev in Thread] Current Thread [Next in Thread]