On Thu, Nov 29, 2007 at 05:44:02PM -0500, Michael Meissner wrote: > On Thu, Nov 29, 2007 at 05:39:33PM +0100, Paolo Bonzini wrote: > > >The more easy specification will be > > > > > >int execel(const char *path, const char *arg0, char *const envp[], > > > ... /*, (char *)0*/); > > > > > >with same functionality but reordered the parameters of the function > > >following the general pattern of putting '...' in the last position. > > > > Don't blame gcc developers (whose mailing list this is, unless something > > changed recently and I wasn't warned); take the discussion in the > > appropriate places and they'll care to explain you the reasons (maybe). > > > > Paolo > > These system calls are part of the Opengroup standard for UNIX (which Linux > adheres to), and they have been around for many years. At this point, I don't > recall if they were part of the UNIX V7 that is the ancestor of all modern > Linux, UNIX, BSD, etc. systems or whether they first appeared in System III or > BSD 4.2 (early 1980's).
V7 only had execl and execv. The C library was much smaller in those days; see http://minnie.tuhs.org/UnixTree/V7/usr/lib/llib-lc.html for a list of all the calls (as a Lint library). Those of you who don't remember K&R C, and lint, might find it a bit confusing.