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 compatible 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 corresponding macro
is
_POSIX_CHILD_MAX.
_SC_CLK_TCK
The number of clock ticks per second; the corresponding macro is
CLK_TCK.
_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 corresponding standard C macro is
FOPEN_MAX.
_SC_TZNAME_MAX
The maximum number of bytes in a timezone name, the corresponding 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
_POSIX_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 most recent revision, 1990.
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 corresponding 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 definition 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 trailing
newline.
The corresponding macro is
LINE_MAX.
_SC_RE_DUP_MAX
The maximum number of repeated occurrences of a regular expression 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 supported.
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 possible
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
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. The variable
errno
is not set.
CONFORMING TO
POSIX.1, proposed POSIX.2
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.
POSIX.2 is not yet an approved standard; the information in this
manpage is subject to change.