Changing .zoo archive to .lzh archive: help!

Changing .zoo archive to .lzh archive: help!

Post by Dave P. Schauma » Mon, 18 Feb 1991 12:41:17



I am trying to write a script that will allow me to convert zoo archives
to lharc archives under Unix.  Here's what I have so far:

mkdir xxx
cd xxx
zoo xq// ../$1.zoo
lharc aq ../$1.lzh * `no-dot .*`
cd ..
rm -r xxx

Where "no-dot" is a simple program that echos back everything in argv[] that
isn't "." or ".."

This works fine, except for two problems: first, there might already be a
file called "xxx" in the current directory, and second, I can't have more
than one invocation going at once.

Now, I could write a program to generate a temporary directory name using
getpid() and some unlikely template, like "xx-######-temp".  What I need to
know is:

  1.  Is it a reasonable assumption that no two concurrent getpid()'s will
      return the same value?

  2.  Is there a better way to do this?

Thanks in advance for all replies.

--
Dave Schaumann      | DANGER: Access holes may tear easily.  Use of the access
                    | holes for lifting or carrying may result in damage to the

 
 
 

Changing .zoo archive to .lzh archive: help!

Post by Marc Unang » Tue, 19 Feb 1991 01:07:24



Quote:>Where "no-dot" is a simple program that echos back everything in argv[] that
>isn't "." or ".."

Why bother?  Why not just use ".??*", and save the overhead of writing
and executing another program?

Quote:>getpid() and some unlikely template, like "xx-######-temp".  What I need to

Again, why bother?  The shell already provides access to your PID in the
form of the "$" variable.  So, you can just do this:

temp=$$xx.temp
# ...
mkdir $temp
# ...

Quote:>  1.  Is it a reasonable assumption that no two concurrent getpid()'s will
>      return the same value?

Yes; a process ID is just that -- a unique identifier assigned to an
individual process.  Since a great many things would break if two
concurrently executing processes could have the same PID, Unix kernel
writers go to great lengths to make sure updates to the process table
are atomic.

Quote:>  2.  Is there a better way to do this?

See above.

--
Marc Unangst                | "I think I have a bad disk.  Even though I

...!umich!leebai!mudos!mju  |  doesn't work..." -Caller to a tech support line