From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S263336AbTD1CaE (ORCPT ); Sun, 27 Apr 2003 22:30:04 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S263369AbTD1CaE (ORCPT ); Sun, 27 Apr 2003 22:30:04 -0400 Received: from almesberger.net ([63.105.73.239]:2579 "EHLO host.almesberger.net") by vger.kernel.org with ESMTP id S263336AbTD1CaD (ORCPT ); Sun, 27 Apr 2003 22:30:03 -0400 Date: Sun, 27 Apr 2003 23:42:15 -0300 From: Werner Almesberger To: Mark Grosberg Cc: "Richard B. Johnson" , linux-kernel@vger.kernel.org Subject: Re: [RFD] Combined fork-exec syscall. Message-ID: <20030427234215.D16041@almesberger.net> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: ; from mark@nolab.conman.org on Sun, Apr 27, 2003 at 10:12:26PM -0400 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Mark Grosberg wrote: > fmap[0] = in[0]; /* STDIN */ > fmap[1] = out[1]; /* STDOUT */ > fmap[2] = open("/dev/null", O_RDWR); /* STDERR */ > fmap[3] = -1; /* end */ > > p = nexec("/bin/cat", > null_argv, > NULL, > filmap); How about fdrplc(3,fmap); exec("/bin/cat",...); ? 0) System call names must be short and cryptic :-) 1) Requiring the kernel to iterate over the array element by element in order to find out how big it is may be inefficient. Better to pass the length. 2) System call overhead is marginal, particularly in this case. 3) There may be other uses than exec(2), where a way for closeing all fds and getting a new set may be useful. - Werner -- _________________________________________________________________________ / Werner Almesberger, Buenos Aires, Argentina wa@almesberger.net / /_http://www.almesberger.net/____________________________________________/