From: George A. Heintzelman (georgeh_at_[hidden])
Date: 2002-01-25 10:40:38
> > I don't want to further complicate matters, but I have to ask: Are there
> > any platforms that use more than a single character as the separator?
> VMS has really wierd filenames. (I expect they think MS-DOS has
> rather wierd ones, and UNIX rather primitive ones.) I wouldn't
> pretend to remember the exact details, but as I recall the volume
> name was written within square brackets, so I suppose that counts
> as a separator that is both multi-character and non-contiguous.
VMS is definitely really weird. A typical fully-specified VMS filename
might look something like this:
The general format is:
Generally, you can't cd 'up' from Device: (which is the name of
the root directory on a given device), but Device is allowed to be a
logical device, which may actually be a subdirectory of a physical
device. Only one layer of indirection is allowed here (at least, when I
last used VMS). The filename may not contain any '.' characters, and
there is only one extension, so f.tar.gz is tricky to make an
equivalent on. It's not case-sensitive (no VMS command is). The version
number is automatically incremented every time you save a new file. If
you don't specify it, you get the highest version number. You can also
specify ;-n as the version number, to get the nth previous version.
As one further twist, if you specify device1:filename.extension, when
your current directory is device2:[current.directory], you will get
device1:[current.directory]filename.extension, if device1 is a rooted
directory specification (what I called a logical device above). But
device1 is also allowed to be an 'ordinary' logical name, which might
be a fully-specified directory (eg Device:[some.directory], in which
case you just get that one. Clear? Thought not.
I have always thought that handling VMS, without losing the ability to
use a significant VMS-specific feature, would be a real challenge to
any pathname utility. Most of the ports of Unix programs that I have
seen ignore version numbers completely, and are rather clumsy around
extensive use of logical devices and logical names.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk