On Fri, 29 Sep 2006 05:30:35 +0000 I wrote: > Should a userland program be allowed to depend on errno==0 on entry > to main()? (At least one in the tree does.)
That claim is unfounded, because usr.bin/head/head.c (which I failed to mention; apologies) is not an example. The question remains unsettled and has no immediate importance. Consider this patch, which would have to be done similarly on the other platforms. Index: src/lib/csu/i386/crt0.c =================================================================== RCS file: /cvs/src/lib/csu/i386/crt0.c,v retrieving revision 1.13 diff -u -r1.13 crt0.c --- src/lib/csu/i386/crt0.c 4 Aug 2005 16:33:05 -0000 1.13 +++ src/lib/csu/i386/crt0.c 30 Sep 2006 11:08:36 -0000 @@ -35,6 +35,7 @@ #include <sys/param.h> #include <sys/exec.h> #include <stdlib.h> +#include <errno.h> static char *_strrchr(char *, char); @@ -96,6 +97,7 @@ __init(); + errno = 0; exit(main(argc, argv, environ)); }