[Info-vax] Unexpected error using ZIP for OpenVMS

Steven Schweda sms.antinode at gmail.com
Fri Dec 23 01:48:21 EST 2011


> [...]  Does the VMS flavour of Zip use SYS$SCRATCH for temporary
> storage?  [...]

   No.  So far as I know, no flavo[u]r of Zip uses the usual
temporary directory (SYS$SCRATCH, $TMPDIR, ...).  Zip uses a
temporary file (on VMS, it's currently "ZIxxxxxxxx.yyyyyyyy",
where "xxxxxxxx" is the hex process ID, and "yyyyyyyy" is a
hex serial number) in the archive destination directory.
Then, if all goes well in creating the temporary archive,
it's renamed to the user-specified name.  And if the rename
operation fails, Zip tries a copy, which, if it works, can be
much slower than a rename.  But the whole reason for creating
the temporary archive in the same directory as the
user-specified archive destination is so that the rename
operation will work (quickly).  As I said, there have been
bugs in this code, but they should all be gone now.  (The
large-file testing was good at revealing these bugs.  Copying
a small archive can be painless, but copying a multi-GB
archive is easy to notice.)

   Older Zip versions (on VMS) didn't have the ".yyyyyyyy",
which caused problems if the victim tried to create a split
archive, which uses multiple temporary archive files.

   There's also a "-b" (/TEMP_PATH) option which lets the
user specify a directory for the temporary archive(s), but,
unless there's a bug in the program (causing an unexpected
problem), I can't think of a good reason to use it.



More information about the Info-vax mailing list