|
From: KJK::Hyperion <no...@li...> - 2002-04-28 15:56:50
|
At 09.50 28/04/2002, you wrote:
>For instance, "A:" is meaningful only in the W32 subsystem, because when
>you type
>C:\> type A:\README.TXT
>KERNEL32.CreateFile("A:\README.TXT") will call internally
>NTDLL.NtCreateFile("\??\A:\README.TXT")
>which will be translated in
>\Device\Floppy0\README.TXT
>because "\??\A:" is a symbolic link in the system name space to that
>device object.
what about paths starting with one or two (back-)slashes? I think those, as
far as possible, should be portable, that is translate to the same path in
all subsystems. It's the only way we can guarantee interoperability
>For the PSX subsystem, we could define that "/dev/x" will be translated by
>PSXDLL.DLL into "\POSIX+\SYSTEM\x" and PSXSS.EXE, at initialization time,
>will create symbolic links in "\POSIX+\SYSTEM" to real devices.
if it's not a real directory it shouldn't appear like a real directory.
Until we have a filesystem that can host a true /dev directory, better use
a double-slash path for such virtual directories, like //./dev/ or similar.
The Single Unix Specification (SUS) as of version 3 allows double-slash
paths with implementation-specific meaning, and Win32 accepts double-slash
paths too. /dev in itself is not defined by the SUS, it is by Filesystem
Hierarchy Standard (FHS), but we're far from being able to implement it
fully anyway
|