Using shell commands versus C equivalents

Mike Meyer mwm-keyword-freebsdhackers2.e313df at mired.org
Wed Jun 13 13:54:18 UTC 2007


In <466F9020.9050306 at u.washington.edu>, Garrett Cooper <youshi10 at u.washington.edu> typed:
> Alexander Leidinger wrote:
> > Quoting Garrett Cooper <youshi10 at u.washington.edu> (from Tue, 12 Jun 
> > 2007 22:55:18 -0700):
> >
> >> Another simple question (I hope):
> >>    Is there any reason why shell commands should be used in place of a
> >> C command (in this case chmod via vsystem instead of the chmod(2)
> >> function)? It seems like the fork / exec would be more expensive with
> >> the shell command, but any area where code could be optimized is more
> >> than welcome I would think.
> >
> > If it is just one file, I don't see the reason to use the shell 
> > command, but if you need to reinvent "chmod -R", I don't see a reason 
> > to forbid the use of the shell command (pragmatic programming).
> >
> > Bye,
> > Alexander.
> >
>     Exactly my thinking (ch{own,mod} for one file, not reinventing the 
> -R 'wheel'). After looking over style(7) I don't see anything about not 
> doing that.

While I agree in principal - if chmod already implements some
hard-to-implement functionality, then using it only makes sense - I
don't think -R qualifies. It's implemented via the fts library, which
makes recursing through a directory tree about as difficult as
scanning a directory. In fact, fts has features that dir* doesn't, so
there are instances where fts is preferable to the dir* routines for
scanning a directory.

	<mike
-- 
Mike Meyer <mwm at mired.org>		http://www.mired.org/consulting.html
Independent Network/Unix/Perforce consultant, email for more information.


More information about the freebsd-hackers mailing list