[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