Copyright Digital Equipment Corp. All rights reserved.

Description

   The sysconf function provides a method for determining the
   current value of a configurable system limit or whether optional
   features are supported.

   You supply a symbolic constant in the name argument, and sysconf
   returns a value for the corresponding system variable:

   o  The symbolic constants defined in the <unistd.h> header file.

   o  The system variables are defined in the <limits.h> and
      <unistd.h> header files.

   sysconf Argument and Return Values lists the system variables
   returned by the sysconf function, and the symbolic constants that
   you can supply as the name value.

   Table REF-10 sysconf Argument and Return Values

                     Symbolic
   System Variable   Constant for
   Returned          name           Meaning

   ISO POSIX-1

   ARG_MAX           _SC_ARG_MAX    The maximum length, in bytes,
                                    of the arguments for one of
                                    the exec functions, including
                                    environment data.
   CHILD_MAX         _SC_CHILD_     The maximum number of
                     MAX            simultaneous processes for each
                                    real user ID.
   CLK_TCK           _SC_CLK_TCK    The number of clock ticks per
                                    second. The value of CLK_TCK
                                    can be variable. Do not assume
                                    that CLK_TCK is a compile-time
                                    constant.
   NGROUPS_MAX       _SC_NGROUPS_   The maximum number of
                     MAX            simultaneous supplementary group
                                    IDs for each process.
   OPEN_MAX          _SC_OPEN_MAX   The maximum number of files that
                                    one process can have open at one
                                    time.
   STREAM_MAX        _SC_STREAM_    The number of streams that one
                     MAX            process can have open at one
                                    time.
   TZNAME_MAX        _SC_TZNAME_    The maximum number of bytes
                     MAX            supported for the name of a time
                                    zone (not the length of the TZ
                                    environmental variable).
   _POSIX_JOB_       _SC_JOB_       This variable has a value of
   CONTROL           CONTROL        1 if the system supports job
                                    control; otherwise, -1 is
                                    returned.
   _POSIX_SAVED_IDS  _SC_SAVED_     This variable has a value of 1
                     IDS            if each process has a saved set
                                    user ID and a saved set group
                                    ID; otherwise, -1 is returned.
   _POSIX_VERSION    _SC_VERSION    The date of approval of the
                                    most current version of the
                                    POSIX-1 standard that the system
                                    supports. The date is a 6-digit
                                    number, with the first 4 digits
                                    signifying the year and the last
                                    2 digits the month.

                                    If_POSIX_VERSION is not defined,
                                    -1 is returned.

                                    Different versions of the POSIX-
                                    1 standard are periodically
                                    approved by the IEEE Standards
                                    Board, and the date of approval
                                    is used to distinguish between
                                    different versions.


   ISO POSIX-2

   BC_BASE_MAX       _SC_BC_BASE_   The maximum value allowed for
                     MAX            the obase variable with the bc
                                    command.
   BC_DIM_MAX        _SC_BC_DIM_    The maximum number of elements
                     MAX            permitted in an array by the bc
                                    command.
   BC_SCALE_MAX      _SC_BC_        The maximum value allowed for
                     SCALE_MAX      the scale variable with the bc
                                    command.
   BC_STRING_MAX     _SC_BC_        The maximum length of string
                     STRING_MAX     constants accepted by the bc
                                    command.
   COLL_WEIGHTS_MAX  _SC_COLL_      The maximum number of weights
                     WEIGHTS_MAX    that can be assigned to an
                                    entry in the LC_COLLATE locale-
                                    dependent information in a
                                    locale definition file.
   EXPR_NEST_MAX     _SC_EXPR_      The maximum number of
                     NEST_MAX       expressions that you can nest
                                    within parentheses by the expr
                                    command.
   LINE_MAX          _SC_LINE_MAX   The maximum length, in bytes,
                                    of a command input line (either
                                    standard input or another file)
                                    when the utility is described
                                    as processing text files. The
                                    length includes room for the
                                    trailing new-line character.
   RE_DUP_MAX        _SC_RE_DUP_    The maximum number of repeated
                     MAX            occurrences of a regular
                                    expression permitted when using
                                    the interval notation arguments,
                                    such as the m and n arguments
                                    with the ed command.
   _POSIX2_CHAR_     _SC_2_CHAR_    This variable has a value of 1
   TERM              TERM           if the system supports at least
                                    one terminal type; otherwise, -1
                                    is returned.
   _POSIX2_C_BIND    _SC_2_C_BIND   This variable has a value of
                                    1 if the system supports the
                                    C language binding option;
                                    otherwise, -1 is returned.
   _POSIX2_C_DEV     _SC_2_C_DEV    This variable has a value of
                                    1 if the system supports the
                                    optional C Language Development
                                    Utilities from the ISO POSIX-
                                    2 standard; otherwise, -1 is
                                    returned.
   _POSIX2_C_        _SC_2_C_       Integer value indicating the
   VERSION           VERSION        version of the ISO POSIX-2
                                    standard (C language binding).
                                    It changes with each new version
                                    of the ISO POSIX-2 standard.
   _POSIX2_VERSION   _SC_2_         Integer value indicating the
                     VERSION        version of the ISO POSIX-2
                                    standard (Commands). It changes
                                    with each new version of the ISO
                                    POSIX-2 standard.
   _POSIX2_FORT_DEV  _SC_2_FORT_    The variable has a value of 1 if
                     DEV            the system supports the Fortran
                                    Development Utilities Option
                                    from the ISO POSIX-2 standard;
                                    otherwise, -1 is returned.
   _POSIX2_FORT_RUN  _SC_2_FORT_    The variable has a value of
                     RUN            1 if the system supports the
                                    Fortran Runtime Utilities Option
                                    from the ISO POSIX-2 standard;
                                    otherwise, -1 is returned.
   _POSIX2_          _SC_2_         The variable has a value of
   LOCALEDEF         LOCALEDEF      1 if the system supports the
                                    creation of new locales with the
                                    localedef command; otherwise, -1
                                    is returned.
   _POSIX2_SW_DEV    _SC_2_SW_DEV   The variable has a value of 1 if
                                    the system supports the Software
                                    Development Utilities Option
                                    from the ISO POSIX-2 standard;
                                    otherwise, -1 is returned.
   _POSIX2_UPE       _SC_2_UPE      The variable has a value of 1
                                    if the system supports the User
                                    Portability Utilities Option;
                                    otherwise, -1 is returned.


   POSIX 1003.1c-1995

   _POSIX_THREADS    _SC_THREADS    This variable has a value of 1
                                    if the system supports POSIX
                                    threads; otherwise, -1 is
                                    returned.
   _POSIX_THREAD_    _SC_THREAD_    This variable has a value of 1
   ATTR_STACKSIZE    ATTR_          if the system supports the POSIX
                     STACKSIZE      threads stack size attribute;
                                    otherwise, -1 is returned.
   _POSIX_THREAD_    _SC_THREAD_    The 1003.1c implementation
   PRIORITY_         PRIORITY_      supports the realtime scheduling
   SCHEDULING        SCHEDULING     functions.
   _POSIX_THREAD_    _SC_THREAD_    TRUE if the implementation
   SAFE_FUNCTIONS    SAFE_          supports the thread-safe ANSI
                     FUNCTIONS      C functions in POSIX 1003.1c.
   PTHREAD_          _SC_THREAD_    When a thread terminates,
   DESTRUCTOR_       DESTRUCTOR_    DECthreads iterates through
   ITERATIONS        ITERATIONS     all non-NULL thread-specific
                                    data values in the thread, and
                                    calls a registered destructor
                                    routine (if any) for each. It
                                    is possible for a destructor
                                    routine to create new values for
                                    one or more thread-specific data
                                    keys. In that case, DECthreads
                                    goes through the entire process
                                    again.

                                    _SC_THREAD_DESTRUCTOR_ITERATIONS
                                    is the maximum number of times
                                    the implementation loops before
                                    it terminates the thread even if
                                    there are still non-NULL values.
   PTHREAD_KEYS_MAX  _SC_THREAD_    The maximum number of thread-
                     KEYS_MAX       specific data keys that an
                                    application can create.
   PTHREAD_STACK_    _SC_THREAD_    The minimum allowed size of a
   MIN               STACK_MIN      stack for a new thread. Any
                                    lower value specified for the
                                    "stacksize" thread attribute is
                                    rounded up.
   UINT_MAX          _SC_THREAD_    The maximum number of threads
                     THREADS_MAX    an application is allowed to
                                    create. Since DECthreads does
                                    not enforce any fixed limit,
                                    this value is -1.



   X/Open

   _XOPEN_VERSION    _SC_XOPEN_     An integer indicating the
                     VERSION        most current version of the
                                    X/Open standard that the system
                                    supports.
   PASS_MAX          _SC_PASS_MAX   Maximum number of significant
                                    bytes in a password (not
                                    including terminating null).
   XOPEN_CRYPT       _SC_XOPEN_     This variable has a value of
                     CRYPT          1 if the system supports the
                                    X/Open Encryption Feature Group;
                                    otherwise, -1 is returned.
   XOPEN_ENH_I18N    _SC_XOPEN_     This variable has a value
                     ENH_I18N       of 1 if the system supports
                                    the X/Open enhanced
                                    Internationalization Feature
                                    Group; otherwise, -1 is
                                    returned.
   XOPEN_SHM         _SC_XOPEN_     This variable has a value
                     SHM            of 1 if the system supports
                                    the X/Open Shared Memory
                                    Feature Group; otherwise, -1
                                    is returned.


   X/Open Extended

   ATEXIT_MAX        _SC_ATEXIT_    The maximum number of functions
                     MAX            that you can register with
                                    atexit per process.
   PAGESIZE          _SC_PAGESIZE   Size, in bytes, of a page.
   PAGE_SIZE         _SC_PAGE_      Same as PAGESIZE. If either
                     SIZE           PAGESIZE or PAGE_SIZE is
                                    defined, the other is defined
                                    with the same value.
   IOV_MAX           _SC_IOV_MAX    Maximum number of iovec
                                    structures that one process
                                    has available for use with readv
                                    or writev.
   XOPEN_UNIX        _SC_XOPEN_     This variable has a value of
                     UNIX           1 if the system supports the
                                    X/Open CAE Specification, August
                                    1994, System Interfaces and
                                    Headers, Issue 4, Version 2,
                                    (ISBN: 1-85912-037-7, C435);
                                    otherwise, -1 is returned.



   Other

   N/A               _SC_CPU_       Returns information for
                     CHIP_TYPE      the processor type. See the
                                    description after this table.

   For the _SC_CPU_CHIP_TYPE symbolic constant:

   o  On Alpha servers, sysconf returns the architecture type (2),
      as given by the $GETSYI system service.

   o  Integrity processor information is stored in CPUID register
      3. This register contains a 64-bit integer divided into 1-byte
      fields indicating version information related to the processor
      implementation. The sysconf function returns the low-order
      longword with the following information:

      31     24 23    16 15    8 7     0
      ----------------------------------
      | family | model  | rev   |number|
      ----------------------------------

   These fields are described in the following table:

   Field  Bits   Description

   number 7:0    Index of the largest implemented CPUID register
                 (one less than the number of implemented CPUID
                 registers). This value will be at least 4.
   rev    15:8   Processor revision number. An 8-bit value that
                 represents the revision or stepping of this
                 processor implementation within the processor
                 model.
   model  23:16  Processor model number. A unique 8-bit value
                 representing the processor model within the
                 processor family.
   family 31:24  Processor family number. A unique 8-bit value
                 representing the processor family.