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.