Path: utzoo!attcan!telly!lethe!tvcent!comspec!humvax!becker!hybrid!scifi!bywater!uunet!bria!mike Newsgroups: comp.unix.questions Subject: Re: Changing .zoo archive to .lzh archive: help! Message-ID: <456@bria> Date: 17 Feb 91 04:54:20 GMT References: <885@caslon.cs.arizona.edu> Reply-To: uunet!bria!mike Distribution: usa Organization: MGI Group International, Los Angeles, CA Lines: 52 Followup-To: Keywords: In an article, cs.arizona.edu!dave (Dave P. Schaumann) writes: > >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 ".." Actually, you can use ``find'' for this purpose ... lharc aq ../$lzh `find . \( ! -name "." -a ! -name ".." \) -print` So, how about this snippet ...? --- snip --- snip --- snip --- snip --- snip --- snip --- snip --- snip --- dir=.dir$$ mkdir $dir || exit for archive in $*; do cd $dir zoo xq// ../${archive}.zoo lharc aq ../${archive}.lzh `find . \( ! -name "." -a ! -name ".." \) -print` cd .. rm -fr $dir mkdir $dir || exit done rm -fr $dir --- snip --- snip --- snip --- snip --- snip --- snip --- snip --- snip --- >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? It is _very_ reasonable to assume this. Updates to the kernel proc table are atomic, insuring that no two "concurrent" processes have the same PID. Hope this helps. Cheers, -- Michael Stefanik, MGI Inc., Los Angeles| Opinions stated are not even my own. Title of the week: Systems Engineer | UUCP: ...!uunet!bria!mike ------------------------------------------------------------------------------- Remember folks: If you can't flame MS-DOS, then what _can_ you flame?