On Thu, 10 Apr 2014 21:55:13 -0700, Philip Guenther wrote:

> On Thu, Apr 10, 2014 at 7:14 PM, Ralph Siegler <[email protected]>
> wrote:
>> On Thu, 14 Nov 2013 23:17:24 -0500, Eitan Adler wrote:
>>> I was looking through some OpenBSD code and noticed that rs and jot
>>> are both missing #include <unistd.h> even though they use getopt.  It
>>> seems that stdlib.h defines getopt on OpenBSD.  However, this is not
>>> the correct header file, and it makes it not possible to compile
>>> OpenBSD's utilities on other platforms.
>>
>> I just looked on my linux box and found this in stdlib.h
> ...
>> So I'm wondering about your assertion that this is "not the correct
>> header file"....looking at links in your post, do you really mean
>> "FreeBSD doesn't define them there but everyone else on the planet
>> might"?
> 
> He's perhaps referring to the POSIX standard, which specifies that that
> *in a conforming compilation environment* <unistd.h> MUST declare
> getopt() and <stdlib.h> MUST NOT declare getopt().
> 
> (Ya'll know that the current POSIX standard can be downloaded after a
> free registration, don'cha?)
> 
> 
> Philip Guenther

Well Philip, had we mentioned any POSIX 2008.1 certified or compliant OS 
in this thread that would be an interesting point to bring up.  But 
neither GNU/Linux, OpenBSD, nor FreeBSD is fully compliant.    

On the other hand, Mac OSX Mavericks is 100% compliant and certified, and 
per spec has, for example, sem_init and sem_destroy in the header 
files.......but lo and behold doesn't actually implement them in the 
libraries.  This and similar show-without-go has bummed out more than one 
code porter.

Meanwhile, OpenBSD doesn't have the 100% 2008.1 beef stamp on its hind 
quarters but will compile and run code having those functions......which 
is better?


Ralph

Reply via email to