sysconf
SYSCONF(3) Linux Programmer's Manual SYSCONF(3)
NAME
sysconf - Get configuration information at runtime
SYNOPSIS
#include <unistd.h>
long sysconf(int name);
DESCRIPTION
sysconf() provides a way for the application to determine values for
system limits or options at runtime.
The equivalent macros defined in <unistd.h> can only give conservative
values; if an application wants to take advantage of values which may
change, a call to sysconf() can be made, which may yield more liberal
results.
For getting information about a particular file, see fpathconf() or
pathconf().
The following values are supported for name. First, the POSIX.1 com-
patible values:
_SC_ARG_MAX
The maximum length of the arguments to the exec() family of
functions; the corresponding macro is ARG_MAX.
_SC_CHILD_MAX
The number of simultaneous processes per user id, the corre-
sponding macro is CHILD_MAX.
_SC_CLK_TCK
The number of clock ticks per second; the corresponding macro
was CLK_TCK. This macro is obsolete now. (Note that the macro
CLOCKS_PER_SEC does not give information: it must equal
1000000.)
_SC_STREAM_MAX
The maximum number of streams that a process can have open at
any time. The corresponding POSIX macro is STREAM_MAX, the cor-
responding standard C macro is FOPEN_MAX.
_SC_TZNAME_MAX
The maximum number of bytes in a timezone name, the correspond-
ing macro is TZNAME_MAX.
_SC_OPEN_MAX
The maximum number of files that a process can have open at any
time, the corresponding macro is OPEN_MAX.
_SC_JOB_CONTROL
This indicates whether POSIX - style job control is supported,
the corresponding macro is _POSIX_JOB_CONTROL.
_SC_SAVED_IDS
This indicates whether a process has a saved set-user-ID and a
saved set-group-ID; the corresponding macro is _POSIX_SAVED_IDS.
_SC_VERSION
indicates the year and month the POSIX.1 standard was approved
in the format YYYYMML;the value 199009L indicates the Sept. 1990
revision. The corresponding macro is _POSIX_VERSION.
Next, the POSIX.2 values:
_SC_BC_BASE_MAX
indicates the maximum obase value accepted by the bc(1) utility;
the corresponding macro is BC_BASE_MAX.
_SC_BC_DIM_MAX
indicates the maximum value of elements permitted in an array by
bc(1); the corresponding macro is BC_DIM_MAX.
_SC_BC_SCALE_MAX
indicates the maximum scale value allowed by bc(1); the corre-
sponding macro is BC_SCALE_MAX.
_SC_BC_STRING_MAX
indicates the maximum length of a string accepted by bc(1); the
corresponding macro is BC_STRING_MAX.
_SC_COLL_WEIGHTS_MAX
indicates the maximum numbers of weights that can be assigned to
an entry of the LC_COLLATE order keyword in the locale defini-
tion file; the corresponding macro is COLL_WEIGHTS_MAX.
_SC_EXPR_NEST_MAX
is the maximum number of expressions which can be nested within
parentheses by expr(1). The corresponding macro is
EXPR_NEST_MAX.
_SC_LINE_MAX
The maximum length of a utility's input line length, either from
standard input or from a file. This includes length for a trail-
ing newline. The corresponding macro is LINE_MAX.
_SC_RE_DUP_MAX
The maximum number of repeated occurrences of a regular expres-
sion when the interval notation \{m,n\} is used. The value of
the corresponding macro is RE_DUP_MAX.
_SC_2_VERSION
indicates the version of the POSIX.2 standard in the format of
YYYYMML. The corresponding macro is POSIX2_VERSION.
_SC_2_DEV
indicates whether the POSIX.2 C language development facilities
are supported. The corresponding macro is POSIX2_C_DEV.
_SC_2_FORT_DEV
indicates whether the POSIX.2 FORTRAN development utilities are
supported. The corresponding macro is POSIX2_FORT_RUN.
_SC_2_FORT_RUN
indicates whether the POSIX.2 FORTRAN runtime utilities are sup-
ported. The corresponding macro is POSIX2_FORT_RUN.
_SC_2_LOCALEDEF
indicates whether the POSIX.2 creation of locates via
localedef(1) is supported. The corresponding macro is
_POSIX2_LOCALEDEF.
_SC_2_SW_DEV
indicates whether the POSIX.2 software development utilities
option is supported. The corresponding macro is POSIX2_SW_DEV.
SUSv2 also lists
_SC_PAGESIZE _SC_PAGE_SIZE
The size of a page (in bytes).
These values also exist, but may not be standard.
_SC_PHYS_PAGES
The number of pages of physical memory. Note that it is possi-
ble for the product of this value and the value of _SC_PAGE_SIZE
to overflow.
_SC_AVPHYS_PAGES
The number of currently available pages of physical memory.
RETURN VALUE
If name is invalid, -1 is returned, and errno is set to EINVAL. Other-
wise, the value returned is the value of the system resource, 1 if a
queried option is available, 0 if it is not, or -1 on error, and the
variable errno is not changed.
CONFORMING TO
POSIX.1.
BUGS
It is difficult to use ARG_MAX because it is not specified how much of
the argument space for exec() is consumed by the user's environment
variables.
Some returned values may be huge; they are not suitable for allocating
memory.
SEE ALSO
bc(1), expr(1), locale(1), fpathconf(3), pathconf(3)
GNU 1993-04-18 SYSCONF(3)