Updated: 2025/Nov/16

Please read Privacy Policy. It's for your privacy.


SYSCONF(3)                 Library Functions Manual                 SYSCONF(3)

NAME
     sysconf - get configurable system variables

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <unistd.h>

     long
     sysconf(int name);

DESCRIPTION
     This interface is defined by IEEE Std 1003.1-1988 ("POSIX.1").  A far
     more complete interface is available using sysctl(3).

     The sysconf() function provides a method for applications to determine
     the current value of a configurable system limit or option variable.  The
     name argument specifies the system variable to be queried.  Symbolic
     constants for each name value are found in the include file <unistd.h>.

     The available values are as follows:

     _SC_ARG_MAX   The maximum bytes of argument to execve(2).

     _SC_ATEXIT_MAX
                   The maximum number of functions that may be registered with
                   atexit(3).

     _SC_BARRIERS  The version of IEEE Std 1003.1 ("POSIX.1") and its Barriers
                   option to which the system attempts to conform, otherwise
                   -1.

     _SC_CLOCK_SELECTION
                   Return the POSIX version the implementation of the Clock
                   Selection option on this system conforms to, or -1 if
                   unavailable.

     _SC_CHILD_MAX
                   The maximum number of simultaneous processes per user id.

     _SC_CLK_TCK   The number of clock ticks per second.

     _SC_FSYNC     Return 1 if the File Synchronization option is available on
                   this system, otherwise -1.

     _SC_HOST_NAME_MAX
                   The maximum size of a hostname, including the terminating
                   NUL.

     _SC_IOV_MAX   The maximum number of iovec structures that a process has
                   available for use with preadv(2), pwritev(2), readv(2),
                   recvmsg(2), sendmsg(2) or writev(2).

     _SC_JOB_CONTROL
                   Return 1 if job control is available on this system,
                   otherwise -1.

     _SC_LOGIN_NAME_MAX
                   Returns the size of the storage required for a login name,
                   in bytes, including the terminating NUL.

     _SC_MAPPED_FILES
                   Return 1 if the Memory Mapped Files option is available on
                   this system, otherwise -1.

     _SC_MEMLOCK   Return 1 if the Process Memory Locking option is available
                   on this system, otherwise -1.

     _SC_MEMLOCK_RANGE
                   Return 1 if the Range Memory Locking option is available on
                   this system, otherwise -1.

     _SC_MEMORY_PROTECTION
                   Return 1 if the Memory Protection option is available on
                   this system, otherwise -1.

     _SC_MONOTONIC_CLOCK
                   Return the POSIX version the implementation of the
                   Monotonic Clock option on this system conforms to, or -1 if
                   unavailable.

     _SC_NGROUPS_MAX
                   The maximum number of supplemental groups.

     _SC_OPEN_MAX  The maximum number of open files per process.

     _SC_PAGESIZE  The size of a system page in bytes.

     _SC_PASS_MAX  The maximum length of the password, not counting the
                   terminating NUL.

     _SC_READER_WRITER_LOCKS
                   The version of IEEE Std 1003.1 ("POSIX.1") and its Read-
                   Write Locks option to which the system attempts to conform,
                   otherwise -1.

     _SC_REGEXP    Return 1 if POSIX regular expressions are available on this
                   system, otherwise -1.

     _SC_SEMAPHORES
                   The version of IEEE Std 1003.1 ("POSIX.1") and its
                   Semaphores option to which the system attempts to conform,
                   otherwise -1.

     _SC_SEM_NSEMS_MAX
                   The maximum number of semaphores that one process can have
                   open at a time, otherwise -1.

     _SC_SHELL     Return 1 if POSIX shell is available on this system,
                   otherwise -1.

     _SC_SPIN_LOCKS
                   The version of IEEE Std 1003.1 ("POSIX.1") and its Spin
                   Locks option to which the system attempts to conform,
                   otherwise -1.

     _SC_STREAM_MAX
                   The minimum maximum number of streams that a process may
                   have open at any one time.

     _SC_SYMLOOP_MAX
                   The maximum number of symbolic links that may be expanded
                   in a path name.

     _SC_SYNCHRONIZED_IO
                   Return 1 if the Synchronized I/O option is available on
                   this system, otherwise -1.

     _SC_THREADS   The version of IEEE Std 1003.1 ("POSIX.1") and its Threads
                   option to which the system attempts to conform, otherwise
                   -1.

     _SC_THREAD_PRIO_PROTECT
                   System supports the priority ceiling protocol for POSIX
                   threads.

     _SC_TIMERS    The version of IEEE Std 1003.1 ("POSIX.1") and its Timers
                   option to which the system attempts to conform, otherwise
                   -1.

     _SC_CPUTIME   The clockID CLOCK_PROCESS_CPUTIME_ID is supported,
                   otherwise -1.

     _SC_THREAD_CPUTIME
                   The clockID CLOCK_THREAD_CPUTIME_ID is supported, otherwise
                   -1.

     _SC_DELAYTIMER_MAX
                   The maximum number of overrun for a specific timer,
                   otherwise -1.

     _SC_TZNAME_MAX
                   The minimum maximum number of types supported for the name
                   of a timezone.

     _SC_SAVED_IDS
                   Returns 1 if saved set-group and saved set-user ID is
                   available, otherwise -1.

     _SC_VERSION   The version of ISO/IEC 9945 (POSIX 1003.1) with which the
                   system attempts to comply.

     _SC_XOPEN_SHM
                   Return 1 if the X/Open Portability Guide Issue 4, Version 2
                   ("XPG4.2") Shared Memory option is available on this
                   system, otherwise -1.

                   Availability of the Shared Memory option depends on the
                   SYSVSHM kernel option.

     _SC_BC_BASE_MAX
                   The maximum ibase/obase values in the bc(1) utility.

     _SC_BC_DIM_MAX
                   The maximum array size in the bc(1) utility.

     _SC_BC_SCALE_MAX
                   The maximum scale value in the bc(1) utility.

     _SC_BC_STRING_MAX
                   The maximum string length in the bc(1) utility.

     _SC_COLL_WEIGHTS_MAX
                   The maximum number of weights that can be assigned to any
                   entry of the LC_COLLATE order keyword in the locale
                   definition file.

     _SC_EXPR_NEST_MAX
                   The maximum number of expressions that can be nested within
                   parenthesis by the expr(1) utility.

     _SC_LINE_MAX  The maximum length in bytes of a text-processing utility's
                   input line.

     _SC_RE_DUP_MAX
                   The maximum number of repeated occurrences of a regular
                   expression permitted when using interval notation.

     _SC_2_VERSION
                   The version of POSIX 1003.2 with which the system attempts
                   to comply.

     _SC_2_C_BIND  Return 1 if the system's C-language development facilities
                   support the C-Language Bindings option, otherwise -1.

     _SC_2_C_DEV   Return 1 if the system supports the C-Language Development
                   Utilities option, otherwise -1.

     _SC_2_CHAR_TERM
                   Return 1 if the system supports at least one terminal type
                   capable of all operations described in POSIX 1003.2,
                   otherwise -1.

     _SC_2_FORT_DEV
                   Return 1 if the system supports the FORTRAN Development
                   Utilities option, otherwise -1.

     _SC_2_FORT_RUN
                   Return 1 if the system supports the FORTRAN Runtime
                   Utilities option, otherwise -1.

     _SC_2_LOCALEDEF
                   Return 1 if the system supports the creation of locales,
                   otherwise -1.

     _SC_2_SW_DEV  Return 1 if the system supports the Software Development
                   Utilities option, otherwise -1.

     _SC_2_UPE     Return 1 if the system supports the User Portability
                   Utilities option, otherwise -1.

     _SC_GETGR_R_SIZE_MAX
                   The minimum size of the buffer passed to getgrgid_r(3) and
                   getgrnam_r(3).

     _SC_GETPW_R_SIZE_MAX
                   The minimum size of the buffer passed to getpwnam_r(3) and
                   getpwuid_r(3).

     _SC_NPROCESSORS_CONF
                   The number of processors configured.

     _SC_NPROCESSORS_ONLN
                   The number of processors online (capable of running
                   processes).

     _SC_PHYS_PAGES
                   The total number of pages of physical memory.  See
                   _SC_PAGESIZE for the system page size.

     _SC_AVPHYS_PAGES
                   The number of available pages of physical memory.  See
                   _SC_PAGESIZE for the system page size.

     _SC_TIMER_MAX
                   The number of timers available for timer_create(2).  This
                   is also known as _POSIX_TIMER_MAX.

RETURN VALUES
     If the call to sysconf is not successful, -1 is returned and errno is set
     appropriately.  Otherwise, if the variable is associated with
     functionality that is not supported, -1 is returned and errno is not
     modified.  Otherwise, the current variable value is returned.

ERRORS
     The sysconf() function may fail and set errno for any of the errors
     specified for the library functions sysctl(3).  In addition, the
     following error may be reported:

     [EINVAL]           The value of the name argument is invalid.

SEE ALSO
     getconf(1), limits(3), sysctl(3)

STANDARDS
     The sysconf() function conforms to IEEE Std 1003.1-1990 ("POSIX.1").  The
     constants _SC_NPROCESSORS_CONF and _SC_NPROCESSORS_ONLN are not part of
     the standard, but are provided by many systems.

HISTORY
     The sysconf function first appeared in 4.4BSD.

BUGS
     The value for _SC_STREAM_MAX is a minimum maximum, and required to be the
     same as ANSI C's FOPEN_MAX, so the returned value is a ridiculously small
     and misleading number.

NetBSD 11.99                   October 25, 2023                   NetBSD 11.99