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 ugly.) Brian _______________________________________________ Bug-coreutils mailing list Bug-coreutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-coreutils