>Date: Tue, 14 Nov 2006 12:41:59 -0500 (EST)
>From: Glenn Fowler <gsf at research.att.com>
>
>the following pertains to solaris 10 -- don't know about other versions
>
>can someone explain how
>       sysconf(_SC_PASS_MAX) == 256
>for these compile options
>       cc
>       cc -D_POSIX_SOURCE=1
>       cc -D_POSIX_C_SOURCE=21000101L
>       cc -D_POSIX_SOURCE=1 -D_POSIX_C_SOURCE=21000101L
>       cc -D_XOPEN_SOURCE -D_XOPEN_VERSION=4  <<< "XPG4"
>vs.
>       /usr/bin/getconf PASS_MAX ==      256
>       /usr/xpg4/bin/getconf PASS_MAX ==   8  <<< value in question
>       /usr/xpg6/bin/getconf PASS_MAX == 256
>
>when the getconf(1) standard text specifies
>
>  The value of each configuration variable shall be determined as if it
>  were obtained by calling the function from which it is defined to be
>  available by this volume of IEEE Std 1003.1-2001 or by the System
>  Interfaces volume of IEEE Std 1003.1-2001 (see the OPERANDS section).
>  The value shall reflect conditions in the current operating
>  environment.
>
>where I assume that this is the function call for PASS_MAX:
>       sysconf(_SC_PASS_MAX)
>
>does this fall into the "shall reflect conditions in the current
>operating environment" hole?

Glenn,
        Yes.  The original X/Open Portability Guide through X/Open
Portability Guide Issue 3 (XPG3) required that <limits.h> define
PASS_MAX to be 8.  XPG4 and XPG4v2 (AKA the original The Single UNIX
Specification (AKA SUS)) still required that value, but marked PASS_MAX
"TO BE WITHDRAWN".  (The TO BE WITHDRAWN marking is very similar to the
Obsolescent marking in POSIX standards.)  The requirement to define
PASS_MAX disappeared in SUSv2.  Therefore, when an application builds
itself in XPG3, XPG4, or SUS mode; <limits.h> #defines PASS_MAX to be 8
as required by XPG3, XPG4, and SUS.

        Don
 
>
>-- Glenn Fowler -- AT&T Research, Florham Park NJ --


Reply via email to