Why isn't argv[argc]==(char *)0 ?
Bjorn Engsig
bengsig at oracle.nl
Thu Nov 16 03:23:27 AEST 1989
Sorry if this is discussed often - I don't normally read c.u.w.
The execv family of system calls all have char *argv[] as their second
parameter, and you are required to put an endmarker as (char *)0 in it.
On the other hand, main has int argc and char *argv[] but here, the
endmarker has disappeared. Has it ever been considered to change the defi-
nition of main such that it will always be true that argv[argc] == (char *)0
or to change the execv's to use argc and not an endmarker.
Is it due to the fact that main() is a C-thing whereas exec() is a Unix thing,
and they therefore are incompatible? If this is the case, why isn't there a
system() counterpart in the scope of C with the same parameters as main()?
It is probably much too late to change anything, but I would just like to
know if this has ever been considered.
--
Bjorn Engsig, Domain: bengsig at oracle.nl,
Path: uunet!mcsun!orcenl!bengsig
USA Domain: bengsig at nlsun1.oracle.com
More information about the Comp.unix.wizards
mailing list