Gets configurable system variables. Format #include <unistd.h> long int sysconf (int name);
1 – Argument
name Specifies the system variable to be queried.
2 – Description
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.
3 – Return Values
x The current variable value on the system. The value does not change during the lifetime of the calling process. -1 Indicates an error. If the value of the name argument is invalid, errno is set to indicate the error. If the value of the name argument is undefined, errno is unchanged.