Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/usr.bin/pathchk



On Wed, 10 Nov 2010, Christoph Badura wrote:
> On Tue, Nov 09, 2010 at 08:34:56PM +0000, Alan Barrett wrote:
> > Modified Files:
> >     src/usr.bin/pathchk: pathchk.1
> > 
> > Log Message:
> > Change the ironically unafe "find . -print | xargs pathchk -p" to
> > the safe "find . -exec pathchk -p \{\} +" in an example.
> 
> Why not save all the forks and use "find . -print0 | xargs -0 pathchk -p"?

The reason I didn't use "-print0" or "xargs -0" is that both those
features are extensions to POSIX, whereas "-exec ... +" in standardised.

"-exec ... +" and "xargs" will both accumulate many args into each
invocation of the child program, and will both fork the same number of
times.  The version using xargs is actually less efficient, because
there's one extra fork to run "xargs" itself, and there's extra I/O over
the pipeline.

Christos seems to have made the same mistake as you, confusing "-exec
... \;" (which runs a separate child program for each file name) with
"-exec ... +" (which passes many file names to each invocation of the
child program).

--apb (Alan Barrett)


Home | Main Index | Thread Index | Old Index