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

seth.r.rosenthal sethr at cbnewsl.att.com
Fri Feb 1 04:40:39 AEST 1991


In article <3598 at lupine.NCD.COM>, rfg at lupine.ncd.com (Ron Guilmette) writes:
> If you use and/or sell System V Release 4 you may want to fix up your
> <sys/unistd.h> file.
> 
> It probably contains:
> 
> extern int execv(const char *, char *const *);
> extern int execve(const char *, char *const *, char *const *);
> extern int execvp(const char *, char *const *);
> 

These prototypes come right out of 1003.1-1990.  That
is why they are in SVR4.

> 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 *);
> 
> If your company sells V.4 ports to the general public (either on your
> company's own hardware or on somebody else's) I encourage you to fix
> this annoying little problem in the systems that your company distributes
> to its customers.
> 
> Please don't make us all suffer with this annoying glitch.

I personally wouldn't change unistd.h in this case.  It will
break your POSIX compliance.

	Seth Rosenthal


Disclaimer: All opinions are my own not my employers'.

(but in this case they may actually be the same)



More information about the Comp.bugs.sys5 mailing list