#### 33.4.2 Constants for `sysconf` Parameters ¶

Here are the symbolic constants for use as the parameter argument to `sysconf`. The values are all integer constants (more specifically, enumeration type values).

`_SC_ARG_MAX` ¶

  Inquire about the parameter corresponding to `ARG_MAX`.

`_SC_CHILD_MAX` ¶

  Inquire about the parameter corresponding to `CHILD_MAX`.

`_SC_OPEN_MAX` ¶

  Inquire about the parameter corresponding to `OPEN_MAX`.

`_SC_STREAM_MAX` ¶

  Inquire about the parameter corresponding to `STREAM_MAX`.

`_SC_TZNAME_MAX` ¶

  Inquire about the parameter corresponding to `TZNAME_MAX`.

`_SC_NGROUPS_MAX` ¶

  Inquire about the parameter corresponding to `NGROUPS_MAX`.

`_SC_JOB_CONTROL` ¶

  Inquire about the parameter corresponding to `_POSIX_JOB_CONTROL`.

`_SC_SAVED_IDS` ¶

  Inquire about the parameter corresponding to `_POSIX_SAVED_IDS`.

`_SC_VERSION` ¶

  Inquire about the parameter corresponding to `_POSIX_VERSION`.

`_SC_CLK_TCK` ¶

  Inquire about the number of clock ticks per second; see CPU Time Inquiry. The corresponding parameter `CLK_TCK` is obsolete.

`_SC_CHARCLASS_NAME_MAX` ¶

  Inquire about the parameter corresponding to maximal length allowed for a character class name in an extended locale specification. These extensions are not yet standardized and so this option is not standardized as well.

`_SC_REALTIME_SIGNALS` ¶

  Inquire about the parameter corresponding to `_POSIX_REALTIME_SIGNALS`.

`_SC_PRIORITY_SCHEDULING` ¶

  Inquire about the parameter corresponding to `_POSIX_PRIORITY_SCHEDULING`.

`_SC_TIMERS` ¶

  Inquire about the parameter corresponding to `_POSIX_TIMERS`.

`_SC_ASYNCHRONOUS_IO` ¶

  Inquire about the parameter corresponding to `_POSIX_ASYNCHRONOUS_IO`.

`_SC_PRIORITIZED_IO` ¶

  Inquire about the parameter corresponding to `_POSIX_PRIORITIZED_IO`.

`_SC_SYNCHRONIZED_IO` ¶

  Inquire about the parameter corresponding to `_POSIX_SYNCHRONIZED_IO`.

`_SC_FSYNC` ¶

  Inquire about the parameter corresponding to `_POSIX_FSYNC`.

`_SC_MAPPED_FILES` ¶

  Inquire about the parameter corresponding to `_POSIX_MAPPED_FILES`.

`_SC_MEMLOCK` ¶

  Inquire about the parameter corresponding to `_POSIX_MEMLOCK`.

`_SC_MEMLOCK_RANGE` ¶

  Inquire about the parameter corresponding to `_POSIX_MEMLOCK_RANGE`.

`_SC_MEMORY_PROTECTION` ¶

  Inquire about the parameter corresponding to `_POSIX_MEMORY_PROTECTION`.

`_SC_MESSAGE_PASSING` ¶

  Inquire about the parameter corresponding to `_POSIX_MESSAGE_PASSING`.

`_SC_SEMAPHORES` ¶

  Inquire about the parameter corresponding to `_POSIX_SEMAPHORES`.

`_SC_SHARED_MEMORY_OBJECTS` ¶

  Inquire about the parameter corresponding to
  `_POSIX_SHARED_MEMORY_OBJECTS`.

`_SC_AIO_LISTIO_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_AIO_LISTIO_MAX`.

`_SC_AIO_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_AIO_MAX`.

`_SC_AIO_PRIO_DELTA_MAX` ¶

  Inquire about the value by which a process can decrease its asynchronous I/O priority level from its own scheduling priority. This corresponds to the run-time invariant value `AIO_PRIO_DELTA_MAX`.

`_SC_DELAYTIMER_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_DELAYTIMER_MAX`.

`_SC_MQ_OPEN_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_MQ_OPEN_MAX`.

`_SC_MQ_PRIO_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_MQ_PRIO_MAX`.

`_SC_RTSIG_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_RTSIG_MAX`.

`_SC_SEM_NSEMS_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_SEM_NSEMS_MAX`.

`_SC_SEM_VALUE_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_SEM_VALUE_MAX`.

`_SC_SIGQUEUE_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_SIGQUEUE_MAX`.

`_SC_TIMER_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_TIMER_MAX`.

`_SC_PII` ¶

  Inquire about the parameter corresponding to `_POSIX_PII`.

`_SC_PII_XTI` ¶

  Inquire about the parameter corresponding to `_POSIX_PII_XTI`.

`_SC_PII_SOCKET` ¶

  Inquire about the parameter corresponding to `_POSIX_PII_SOCKET`.

`_SC_PII_INTERNET` ¶

  Inquire about the parameter corresponding to `_POSIX_PII_INTERNET`.

`_SC_PII_OSI` ¶

  Inquire about the parameter corresponding to `_POSIX_PII_OSI`.

`_SC_SELECT` ¶

  Inquire about the parameter corresponding to `_POSIX_SELECT`.

`_SC_UIO_MAXIOV` ¶

  Inquire about the parameter corresponding to `_POSIX_UIO_MAXIOV`.

`_SC_PII_INTERNET_STREAM` ¶

  Inquire about the parameter corresponding to `_POSIX_PII_INTERNET_STREAM`.

`_SC_PII_INTERNET_DGRAM` ¶

  Inquire about the parameter corresponding to `_POSIX_PII_INTERNET_DGRAM`.

`_SC_PII_OSI_COTS` ¶

  Inquire about the parameter corresponding to `_POSIX_PII_OSI_COTS`.

`_SC_PII_OSI_CLTS` ¶

  Inquire about the parameter corresponding to `_POSIX_PII_OSI_CLTS`.

`_SC_PII_OSI_M` ¶

  Inquire about the parameter corresponding to `_POSIX_PII_OSI_M`.

`_SC_T_IOV_MAX` ¶

  Inquire about the value associated with the `T_IOV_MAX` variable.

`_SC_THREADS` ¶

  Inquire about the parameter corresponding to `_POSIX_THREADS`.

`_SC_THREAD_SAFE_FUNCTIONS` ¶

  Inquire about the parameter corresponding to
  `_POSIX_THREAD_SAFE_FUNCTIONS`.

`_SC_GETGR_R_SIZE_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_GETGR_R_SIZE_MAX`.

`_SC_GETPW_R_SIZE_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_GETPW_R_SIZE_MAX`.

`_SC_LOGIN_NAME_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_LOGIN_NAME_MAX`.

`_SC_TTY_NAME_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_TTY_NAME_MAX`.

`_SC_THREAD_DESTRUCTOR_ITERATIONS` ¶

  Inquire about the parameter corresponding to `_POSIX_THREAD_DESTRUCTOR_ITERATIONS`.

`_SC_THREAD_KEYS_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_THREAD_KEYS_MAX`.

`_SC_THREAD_STACK_MIN` ¶

  Inquire about the parameter corresponding to `_POSIX_THREAD_STACK_MIN`.

`_SC_THREAD_THREADS_MAX` ¶

  Inquire about the parameter corresponding to `_POSIX_THREAD_THREADS_MAX`.

`_SC_THREAD_ATTR_STACKADDR` ¶

  Inquire about the parameter corresponding to
  a `_POSIX_THREAD_ATTR_STACKADDR`.

`_SC_THREAD_ATTR_STACKSIZE` ¶

  Inquire about the parameter corresponding to
  `_POSIX_THREAD_ATTR_STACKSIZE`.

`_SC_THREAD_PRIORITY_SCHEDULING` ¶

  Inquire about the parameter corresponding to `_POSIX_THREAD_PRIORITY_SCHEDULING`.

`_SC_THREAD_PRIO_INHERIT` ¶

  Inquire about the parameter corresponding to `_POSIX_THREAD_PRIO_INHERIT`.

`_SC_THREAD_PRIO_PROTECT` ¶

  Inquire about the parameter corresponding to `_POSIX_THREAD_PRIO_PROTECT`.

`_SC_THREAD_PROCESS_SHARED` ¶

  Inquire about the parameter corresponding to `_POSIX_THREAD_PROCESS_SHARED`.

`_SC_2_C_DEV` ¶

  Inquire about whether the system has the POSIX.2 C compiler command, `c89`.

`_SC_2_FORT_DEV` ¶

  Inquire about whether the system has the POSIX.2 Fortran compiler command, `fort77`.

`_SC_2_FORT_RUN` ¶

  Inquire about whether the system has the POSIX.2 `asa` command to interpret Fortran carriage control.

`_SC_2_LOCALEDEF` ¶

  Inquire about whether the system has the POSIX.2 `localedef` command.

`_SC_2_SW_DEV` ¶

  Inquire about whether the system has the POSIX.2 commands `ar`, `make`, and `strip`.

`_SC_BC_BASE_MAX` ¶

  Inquire about the maximum value of `obase` in the `bc` utility.

`_SC_BC_DIM_MAX` ¶

  Inquire about the maximum size of an array in the `bc` utility.

`_SC_BC_SCALE_MAX` ¶

  Inquire about the maximum value of `scale` in the `bc` utility.

`_SC_BC_STRING_MAX` ¶

  Inquire about the maximum size of a string constant in the `bc` utility.

`_SC_COLL_WEIGHTS_MAX` ¶

  Inquire about the maximum number of weights that can necessarily be used in defining the collating sequence for a locale.

`_SC_EXPR_NEST_MAX` ¶

  Inquire about the maximum number of expressions nested within parentheses when using the `expr` utility.

`_SC_LINE_MAX` ¶

  Inquire about the maximum size of a text line that the POSIX.2 text utilities can handle.

`_SC_EQUIV_CLASS_MAX` ¶

  Inquire about the maximum number of weights that can be assigned to an entry of the `LC_COLLATE` category ‘`order`’ keyword in a locale definition. The GNU C Library does not presently support locale definitions.

`_SC_VERSION` ¶

  Inquire about the version number of POSIX.1 that the library and kernel support.

`_SC_2_VERSION` ¶

  Inquire about the version number of POSIX.2 that the system utilities support.

`_SC_PAGESIZE` ¶

  Inquire about the virtual memory page size of the machine. `getpagesize` returns the same value (see How to get information about the memory subsystem?).

`_SC_NPROCESSORS_CONF` ¶

  Inquire about the number of configured processors.

`_SC_NPROCESSORS_ONLN` ¶

  Inquire about the number of processors online.

`_SC_PHYS_PAGES` ¶

  Inquire about the number of physical pages in the system.

`_SC_AVPHYS_PAGES` ¶

  Inquire about the number of available physical pages in the system.

`_SC_ATEXIT_MAX` ¶

  Inquire about the number of functions which can be registered as termination functions for `atexit`; see Cleanups on Exit.

`_SC_LEVEL1_ICACHE_SIZE` ¶

  Inquire about the size of the Level 1 instruction cache.

`_SC_LEVEL1_ICACHE_ASSOC` ¶

  Inquire about the associativity of the Level 1 instruction cache.

`_SC_LEVEL1_ICACHE_LINESIZE` ¶

  Inquire about the line length of the Level 1 instruction cache.

  On aarch64, the cache line size returned is the minimum instruction cache line size observable by userspace. This is typically the same as the L1 icache size but on some cores it may not be so. However, it is specified in the architecture that operations such as cache line invalidation are consistent with the size reported with this variable.

`_SC_LEVEL1_DCACHE_SIZE` ¶

  Inquire about the size of the Level 1 data cache.

`_SC_LEVEL1_DCACHE_ASSOC` ¶

  Inquire about the associativity of the Level 1 data cache.

`_SC_LEVEL1_DCACHE_LINESIZE` ¶

  Inquire about the line length of the Level 1 data cache.

  On aarch64, the cache line size returned is the minimum data cache line size observable by userspace. This is typically the same as the L1 dcache size but on some cores it may not be so. However, it is specified in the architecture that operations such as cache line invalidation are consistent with the size reported with this variable.

`_SC_LEVEL2_CACHE_SIZE` ¶

  Inquire about the size of the Level 2 cache.

`_SC_LEVEL2_CACHE_ASSOC` ¶

  Inquire about the associativity of the Level 2 cache.

`_SC_LEVEL2_CACHE_LINESIZE` ¶

  Inquire about the line length of the Level 2 cache.

`_SC_LEVEL3_CACHE_SIZE` ¶

  Inquire about the size of the Level 3 cache.

`_SC_LEVEL3_CACHE_ASSOC` ¶

  Inquire about the associativity of the Level 3 cache.

`_SC_LEVEL3_CACHE_LINESIZE` ¶

  Inquire about the line length of the Level 3 cache.

`_SC_LEVEL4_CACHE_SIZE` ¶

  Inquire about the size of the Level 4 cache.

`_SC_LEVEL4_CACHE_ASSOC` ¶

  Inquire about the associativity of the Level 4 cache.

`_SC_LEVEL4_CACHE_LINESIZE` ¶

  Inquire about the line length of the Level 4 cache.

`_SC_XOPEN_VERSION` ¶

  Inquire about the parameter corresponding to `_XOPEN_VERSION`.

`_SC_XOPEN_XCU_VERSION` ¶

  Inquire about the parameter corresponding to `_XOPEN_XCU_VERSION`.

`_SC_XOPEN_UNIX` ¶

  Inquire about the parameter corresponding to `_XOPEN_UNIX`.

`_SC_XOPEN_REALTIME` ¶

  Inquire about the parameter corresponding to `_XOPEN_REALTIME`.

`_SC_XOPEN_REALTIME_THREADS` ¶

  Inquire about the parameter corresponding to `_XOPEN_REALTIME_THREADS`.

`_SC_XOPEN_LEGACY` ¶

  Inquire about the parameter corresponding to `_XOPEN_LEGACY`.

`_SC_XOPEN_CRYPT` ¶

  Inquire about the parameter corresponding to `_XOPEN_CRYPT`. The GNU C Library no longer implements the `_XOPEN_CRYPT` extensions, so ‘`sysconf (_SC_XOPEN_CRYPT)`’ always returns `-1`.

`_SC_XOPEN_ENH_I18N` ¶

  Inquire about the parameter corresponding to `_XOPEN_ENH_I18N`.

`_SC_XOPEN_SHM` ¶

  Inquire about the parameter corresponding to `_XOPEN_SHM`.

`_SC_XOPEN_XPG2` ¶

  Inquire about the parameter corresponding to `_XOPEN_XPG2`.

`_SC_XOPEN_XPG3` ¶

  Inquire about the parameter corresponding to `_XOPEN_XPG3`.

`_SC_XOPEN_XPG4` ¶

  Inquire about the parameter corresponding to `_XOPEN_XPG4`.

`_SC_CHAR_BIT` ¶

  Inquire about the number of bits in a variable of type `char`.

`_SC_CHAR_MAX` ¶

  Inquire about the maximum value which can be stored in a variable of type `char`.

`_SC_CHAR_MIN` ¶

  Inquire about the minimum value which can be stored in a variable of type `char`.

`_SC_INT_MAX` ¶

  Inquire about the maximum value which can be stored in a variable of type `int`.

`_SC_INT_MIN` ¶

  Inquire about the minimum value which can be stored in a variable of type `int`.

`_SC_LONG_BIT` ¶

  Inquire about the number of bits in a variable of type `long int`.

`_SC_WORD_BIT` ¶

  Inquire about the number of bits in a variable of a register word.

`_SC_MB_LEN_MAX` ¶

  Inquire about the maximum length of a multi-byte representation of a wide character value.

`_SC_NZERO` ¶

  Inquire about the value used to internally represent the zero priority level for the process execution.

`_SC_SSIZE_MAX` ¶

  Inquire about the maximum value which can be stored in a variable of type `ssize_t`.

`_SC_SCHAR_MAX` ¶

  Inquire about the maximum value which can be stored in a variable of type `signed char`.

`_SC_SCHAR_MIN` ¶

  Inquire about the minimum value which can be stored in a variable of type `signed char`.

`_SC_SHRT_MAX` ¶

  Inquire about the maximum value which can be stored in a variable of type `short int`.

`_SC_SHRT_MIN` ¶

  Inquire about the minimum value which can be stored in a variable of type `short int`.

`_SC_UCHAR_MAX` ¶

  Inquire about the maximum value which can be stored in a variable of type `unsigned char`.

`_SC_UINT_MAX` ¶

  Inquire about the maximum value which can be stored in a variable of type `unsigned int`.

`_SC_ULONG_MAX` ¶

  Inquire about the maximum value which can be stored in a variable of type `unsigned long int`.

`_SC_USHRT_MAX` ¶

  Inquire about the maximum value which can be stored in a variable of type `unsigned short int`.

`_SC_NL_ARGMAX` ¶

  Inquire about the parameter corresponding to `NL_ARGMAX`.

`_SC_NL_LANGMAX` ¶

  Inquire about the parameter corresponding to `NL_LANGMAX`.

`_SC_NL_MSGMAX` ¶

  Inquire about the parameter corresponding to `NL_MSGMAX`.

`_SC_NL_NMAX` ¶

  Inquire about the parameter corresponding to `NL_NMAX`.

`_SC_NL_SETMAX` ¶

  Inquire about the parameter corresponding to `NL_SETMAX`.

`_SC_NL_TEXTMAX` ¶

  Inquire about the parameter corresponding to `NL_TEXTMAX`.

`_SC_MINSIGSTKSZ` ¶

  Inquire about the minimum number of bytes of free stack space required in order to guarantee successful, non-nested handling of a single signal whose handler is an empty function.

`_SC_SIGSTKSZ` ¶

  Inquire about the suggested minimum number of bytes of stack space required for a signal stack.

  This is not guaranteed to be enough for any specific purpose other than the invocation of a single, non-nested, empty handler, but nonetheless should be enough for basic scenarios involving simple signal handlers and very low levels of signal nesting (say, 2 or 3 levels at the very most).

  This value is provided for developer convenience and to ease migration from the legacy `SIGSTKSZ` constant. Programs requiring stronger guarantees should avoid using it if at all possible.