🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.bugs.sys5
Article #344

Re: Annoying prototypes for execv* functions in V.4 <sys/unistd.h>

#344
From: Doug Gwyn
Date: Thu, 31 Jan 1991 17:58
21 lines
1655 bytes
In article <3598@lupine.NCD.COM> rfg@lupine.ncd.com (Ron Guilmette) writes:
>I'm fairly sure that these declarations should be changed to:
>extern int execv(const char *, const char *const *);
>extern int execve(const char *, const char *const *, const char *const *);
>extern int execvp(const char *, const char *const *);

Unfortunately there is no "right" way to do this.  Pointer-to-const has
special meaning in function parameter declarations, not quite in line
with the meaning in other forms of declaration.  In particular, type
compatibility checking will approve of passing a pointer to non-const
at the "first" level, but not at the second level of referencing.  Thus
the common usage
	char *args[] = { "prog", "arg1", NULL };
	execv( args[0], args );
would cause an "incompatible types for second argument" diagnostic,
were <unistd.h> (what is this "sys/" prefix?) to provide the additional
"const"s that you suggest.  You can legitimately consider this a
technical deficiency in the C standard if you wish; we simply couldn't
figure out an acceptable way to specify what one would really want for
this and therefore just fixed up the spec for the top level of
referencing.
Technical Details
Message-ID: <15028@smoke.brl.mil>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!watserv1!watmath!att!linac!uwm.edu!zaphod.mps.ohio-state.edu!rpi!sci.ccny.cuny.edu!phri!cmcl2!adm!smoke!gwyn
References: <3598@lupine.NCD.COM>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!watserv1!watmath!att!linac!uwm.edu!zaphod.mps.ohio-state.edu!rpi!sci.ccny.cuny.edu!phri!cmcl2!adm!smoke!gwyn
From: gwyn@smoke.brl.mil (Doug Gwyn)
Newsgroups: comp.bugs.sys5
Subject: Re: Annoying prototypes for execv* functions in V.4 <sys/unistd.h>
Message-ID: <15028@smoke.brl.mil>
Date: 31 Jan 91 17:58:58 GMT
References: <3598@lupine.NCD.COM>
Organization: U.S. Army Ballistic Research Laboratory, APG, MD.
Lines: 21