From owner-freebsd-hackers@FreeBSD.ORG Wed Jun 13 13:48:34 2007 Return-Path: X-Original-To: hackers@freebsd.org Delivered-To: freebsd-hackers@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E161516A46D for ; Wed, 13 Jun 2007 13:48:34 +0000 (UTC) (envelope-from danny@cs.huji.ac.il) Received: from cs1.cs.huji.ac.il (cs1.cs.huji.ac.il [132.65.16.10]) by mx1.freebsd.org (Postfix) with ESMTP id 99D2713C48C for ; Wed, 13 Jun 2007 13:48:34 +0000 (UTC) (envelope-from danny@cs.huji.ac.il) Received: from pampa.cs.huji.ac.il ([132.65.80.32]) by cs1.cs.huji.ac.il with esmtp id 1HySxb-000PIg-89; Wed, 13 Jun 2007 16:32:31 +0300 X-Mailer: exmh version 2.7.2 01/07/2005 with nmh-1.2 To: David Wolfskill In-reply-to: <20070613123213.GE98927@bunrab.catwhisker.org> References: <466F86C6.7010006@u.washington.edu> <20070613123213.GE98927@bunrab.catwhisker.org> Comments: In-reply-to David Wolfskill message dated "Wed, 13 Jun 2007 05:32:13 -0700." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 13 Jun 2007 16:32:31 +0300 From: Danny Braniss Message-ID: Cc: Garrett Cooper , hackers@freebsd.org Subject: Re: Using shell commands versus C equivalents X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Jun 2007 13:48:35 -0000 > > --Rgf3q3z9SdmXC6oT > Content-Type: text/plain; charset=us-ascii > Content-Disposition: inline > Content-Transfer-Encoding: quoted-printable > > On Tue, Jun 12, 2007 at 10:55:18PM -0700, Garrett Cooper wrote: > > Another simple question (I hope): > > Is there any reason why shell commands should be used in place of a=20 > > C command (in this case chmod via vsystem instead of the chmod(2)=20 > > function)? It seems like the fork / exec would be more expensive with=20 > > the shell command, but any area where code could be optimized is more=20 > > than welcome I would think. > > There often are reasons to prefer using shell commands to C. > > There typically exist many tradeoffs involved in evaluating one over the > other, and "machine efficiency" is not always the highest goal. (For > example, it may be better to reduce complexity in favor of having a > simpler structure that is easier for people to understand and maintain > with confidence that the changes they make have the desired results. > This is, of course, not to try to claim that shell scripts are > inherently easier to understand than C code; that would be a silly > stance to take.) > > I commend to your attention Geoff Collyer and Henry Spencer's "C News" > (a successor to Rick Adams' "B News") implementation, a great deal of > which was written as shell scripts (ca. 1988 or so). > > (Yes, I realize that that was almost 20 years ago, and that it > didn't involve FreeBSD per se. Ignoring the lessons of history is > rather short-sighted and foolish: despite using shell scripts for > so much of the "code," the machine I was then running went from > being extremely busy all the time to having a couple of bursts of > activity per day for about an hour each time -- with more news > flowing with C News vs. B News.) > read the question again, though it is not absolutely clear/correct, the question was: chmod(path, mode) vs system("chmod ...") and not wheather to write a program or a shell script. danny