Minix Man Pages
home | helpx minix x x minixx SYSCONF(3) Linux Programmer's Manual SYSCONF(3) NAME sysconf - get configuration information at run time SYNOPSIS #include <unistd.h> long sysconf(int name); DESCRIPTION POSIX allows an application to test at compile or run time whether cer- tain options are supported, or what the value is of certain config- urable constants or limits. At compile time this is done by including _unistd.h_ and/or _limits.h_ and testing the value of certain macros. At run time, one can ask for numerical values using the present func- tion sysconf(). One can ask for numerical values that may depend on the filesystem in which a file resides using fpathconf(3) and path- conf(3). One can ask for string values using confstr(3). The values obtained from these functions are system configuration con- stants. They do not change during the lifetime of a process. For options, typically, there is a constant _POSIX_FOO that may be de- fined in _unistd.h_. If it is undefined, one should ask at run time. If it is defined to -1, then the option is not supported. If it is de- fined to 0, then relevant functions and headers exist, but one has to ask at run time what degree of support is available. If it is defined to a value other than -1 or 0, then the option is supported. Usually the value (such as 200112L) indicates the year and month of the POSIX revision describing the option. Glibc uses the value 1 to indicate support as long as the POSIX revision has not been published yet. The sysconf() argument will be _SC_FOO. For a list of options, see posixoptions(7). For variables or limits, typically, there is a constant _FOO, maybe de- fined in _limits.h_, or _POSIX_FOO, maybe defined in _unistd.h_. The constant will not be defined if the limit is unspecified. If the con- stant is defined, it gives a guaranteed value, and a greater value might actually be supported. If an application wants to take advantage of values which may change between systems, a call to sysconf() can be made. The sysconf() argument will be _SC_FOO. POSIX.1 variables We give the name of the variable, the name of the sysconf() argument used to inquire about its value, and a short description. First, the POSIX.1 compatible values. ARG_MAX - _SC_ARG_MAX The maximum length of the arguments to the exec(3) family of functions. Must not be less than _POSIX_ARG_MAX (4096). CHILD_MAX - _SC_CHILD_MAX The maximum number of simultaneous processes per user ID. Must not be less than _POSIX_CHILD_MAX (25). HOST_NAME_MAX - _SC_HOST_NAME_MAX Maximum length of a hostname, not including the terminating null byte, as returned by gethostname(2). Must not be less than _POSIX_HOST_NAME_MAX (255). LOGIN_NAME_MAX - _SC_LOGIN_NAME_MAX Maximum length of a login name, including the terminating null byte. Must not be less than _POSIX_LOGIN_NAME_MAX (9). NGROUPS_MAX - _SC_NGROUPS_MAX Maximum number of supplementary group IDs. clock ticks - _SC_CLK_TCK The number of clock ticks per second. The corresponding vari- able is obsolete. It was of course called CLK_TCK. (Note: the macro CLOCKS_PER_SEC does not give information: it must equal 1000000.) OPEN_MAX - _SC_OPEN_MAX The maximum number of files that a process can have open at any time. Must not be less than _POSIX_OPEN_MAX (20). PAGESIZE - _SC_PAGESIZE Size of a page in bytes. Must not be less than 1. PAGE_SIZE - _SC_PAGE_SIZE A synonym for PAGESIZE/_SC_PAGESIZE. (Both PAGESIZE and PAGE_SIZE are specified in POSIX.) RE_DUP_MAX - _SC_RE_DUP_MAX The number of repeated occurrences of a BRE permitted by regexec(3) and regcomp(3). Must not be less than _POSIX2_RE_DUP_MAX (255). STREAM_MAX - _SC_STREAM_MAX The maximum number of streams that a process can have open at any time. If defined, it has the same value as the standard C macro FOPEN_MAX. Must not be less than _POSIX_STREAM_MAX (8). SYMLOOP_MAX - _SC_SYMLOOP_MAX The maximum number of symbolic links seen in a pathname before resolution returns ELOOP. Must not be less than _POSIX_SYM- LOOP_MAX (8). TTY_NAME_MAX - _SC_TTY_NAME_MAX The maximum length of terminal device name, including the termi- nating null byte. Must not be less than _POSIX_TTY_NAME_MAX (9). TZNAME_MAX - _SC_TZNAME_MAX The maximum number of bytes in a timezone name. Must not be less than _POSIX_TZNAME_MAX (6). _POSIX_VERSION - _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. POSIX.2 variables Next, the POSIX.2 values, giving limits for utilities. BC_BASE_MAX - _SC_BC_BASE_MAX indicates the maximum obase value accepted by the bc(1) utility. BC_DIM_MAX - _SC_BC_DIM_MAX indicates the maximum value of elements permitted in an array by bc(1). BC_SCALE_MAX - _SC_BC_SCALE_MAX indicates the maximum scale value allowed by bc(1). BC_STRING_MAX - _SC_BC_STRING_MAX indicates the maximum length of a string accepted by bc(1). COLL_WEIGHTS_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, EXPR_NEST_MAX - _SC_EXPR_NEST_MAX is the maximum number of expressions which can be nested within parentheses by expr(1). LINE_MAX - _SC_LINE_MAX The maximum length of a utility's input line, either from stan- dard input or from a file. This includes space for a trailing newline. RE_DUP_MAX - _SC_RE_DUP_MAX The maximum number of repeated occurrences of a regular expres- sion when the interval notation \{m,n\} is used. POSIX2_VERSION - _SC_2_VERSION indicates the version of the POSIX.2 standard in the format of YYYYMML. POSIX2_C_DEV - _SC_2_C_DEV indicates whether the POSIX.2 C language development facilities are supported. POSIX2_FORT_DEV - _SC_2_FORT_DEV indicates whether the POSIX.2 FORTRAN development utilities are supported. POSIX2_FORT_RUN - _SC_2_FORT_RUN indicates whether the POSIX.2 FORTRAN run-time utilities are supported. _POSIX2_LOCALEDEF - _SC_2_LOCALEDEF indicates whether the POSIX.2 creation of locates via lo- caledef(1) is supported. POSIX2_SW_DEV - _SC_2_SW_DEV indicates whether the POSIX.2 software development utilities op- tion is supported. 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_PAGESIZE to overflow. - _SC_AVPHYS_PAGES The number of currently available pages of physical memory. - _SC_NPROCESSORS_CONF The number of processors configured. See also get_nprocs_conf(3). - _SC_NPROCESSORS_ONLN The number of processors currently online (available). See also get_nprocs_conf(3). RETURN VALUE The return value of sysconf() is one of the following: * On error, -1 is returned and errno is set to indicate the cause of the error (for example, EINVAL, indicating that name is invalid). * If name corresponds to a maximum or minimum limit, and that limit is indeterminate, -1 is returned and errno is not changed. (To distin- guish an indeterminate limit from an error, set errno to zero before the call, and then check whether errno is nonzero when -1 is re- turned.) * If name corresponds to an option, a positive value is returned if the option is supported, and -1 is returned if the option is not supported. * Otherwise, the current value of the option or limit is returned. This value will not be more restrictive than the corresponding value that was described to the application in _unistd.h_ or _limits.h_ when the application was compiled. ERRORS EINVAL name is invalid. ATTRIBUTES For an explanation of the terms used in this section, see at- tributes(7). +----------+---------------+-------------+ |Interface | Attribute | Value | +----------+---------------+-------------+ |sysconf() | Thread safety | MT-Safe env | +----------+---------------+-------------+ CONFORMING TO POSIX.1-2001, POSIX.1-2008. BUGS It is difficult to use ARG_MAX because it is not specified how much of the argument space for exec(3) 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), getconf(1), locale(1), confstr(3), fpathconf(3), path- conf(3), posixoptions(7) COLOPHON This page is part of release 5.05 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/. GNU 2019-05-09 SYSCONF(3)
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | ATTRIBUTES | CONFORMING TO | BUGS | SEE ALSO | COLOPHON