]>
Commit | Line | Data |
---|---|---|
bf5a7247 | 1 | .\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de) |
fea681da | 2 | .\" |
93015253 | 3 | .\" %%%LICENSE_START(VERBATIM) |
fea681da MK |
4 | .\" Permission is granted to make and distribute verbatim copies of this |
5 | .\" manual provided the copyright notice and this permission notice are | |
6 | .\" preserved on all copies. | |
7 | .\" | |
8 | .\" Permission is granted to copy and distribute modified versions of this | |
9 | .\" manual under the conditions for verbatim copying, provided that the | |
10 | .\" entire resulting derived work is distributed under the terms of a | |
11 | .\" permission notice identical to this one. | |
c13182ef | 12 | .\" |
fea681da MK |
13 | .\" Since the Linux kernel and libraries are constantly changing, this |
14 | .\" manual page may be incorrect or out-of-date. The author(s) assume no | |
15 | .\" responsibility for errors or omissions, or for damages resulting from | |
16 | .\" the use of the information contained herein. The author(s) may not | |
17 | .\" have taken the same level of care in the production of this manual, | |
18 | .\" which is licensed free of charge, as they might when working | |
19 | .\" professionally. | |
c13182ef | 20 | .\" |
fea681da MK |
21 | .\" Formatted or processed versions of this manual, if unaccompanied by |
22 | .\" the source, must acknowledge the copyright and authors of this work. | |
4b72fb64 | 23 | .\" %%%LICENSE_END |
c08df37a | 24 | .\" |
fea681da MK |
25 | .\" Modified Sat Jul 24 17:51:42 1993 by Rik Faith (faith@cs.unc.edu) |
26 | .\" Modified Tue Aug 17 11:42:20 1999 by Ariel Scolnicov (ariels@compugen.co.il) | |
2e3023c4 | 27 | .TH SYSCONF 3 2019-05-09 "GNU" "Linux Programmer's Manual" |
fea681da | 28 | .SH NAME |
72c90260 | 29 | sysconf \- get configuration information at run time |
fea681da MK |
30 | .SH SYNOPSIS |
31 | .nf | |
32 | .B #include <unistd.h> | |
68e4db0a | 33 | .PP |
fea681da MK |
34 | .BI "long sysconf(int " "name" ); |
35 | .fi | |
36 | .SH DESCRIPTION | |
cf50118f | 37 | POSIX allows an application to test at compile or run time |
fea681da MK |
38 | whether certain options are supported, or what the value is |
39 | of certain configurable constants or limits. | |
dd3568a1 | 40 | .PP |
fea681da MK |
41 | At compile time this is done by including |
42 | .I <unistd.h> | |
43 | and/or | |
44 | .I <limits.h> | |
45 | and testing the value of certain macros. | |
dd3568a1 | 46 | .PP |
fea681da MK |
47 | At run time, one can ask for numerical values using the present function |
48 | .BR sysconf (). | |
7d0db56e | 49 | One can ask for numerical values that may depend |
386732aa | 50 | on the filesystem in which a file resides using |
fea681da MK |
51 | .BR fpathconf (3) |
52 | and | |
53 | .BR pathconf (3). | |
54 | One can ask for string values using | |
55 | .BR confstr (3). | |
dd3568a1 | 56 | .PP |
fea681da MK |
57 | The values obtained from these functions are system configuration constants. |
58 | They do not change during the lifetime of a process. | |
59 | .\" except that sysconf(_SC_OPEN_MAX) may change answer after a call | |
0425de01 | 60 | .\" to setrlimit( ) which changes the RLIMIT_NOFILE soft limit |
dd3568a1 | 61 | .PP |
fea681da MK |
62 | For options, typically, there is a constant |
63 | .B _POSIX_FOO | |
64 | that may be defined in | |
65 | .IR <unistd.h> . | |
cf50118f | 66 | If it is undefined, one should ask at run time. |
fea681da MK |
67 | If it is defined to \-1, then the option is not supported. |
68 | If it is defined to 0, then relevant functions and headers exist, | |
72c90260 | 69 | but one has to ask at run time what degree of support is available. |
fea681da | 70 | If it is defined to a value other than \-1 or 0, then the option is |
c13182ef MK |
71 | supported. |
72 | Usually the value (such as 200112L) indicates the year and month | |
73 | of the POSIX revision describing the option. | |
74 | Glibc uses the value 1 | |
fea681da MK |
75 | to indicate support as long as the POSIX revision has not been published yet. |
76 | .\" and 999 to indicate support for options no longer present in the latest | |
77 | .\" standard. (?) | |
78 | The | |
63aa9df0 | 79 | .BR sysconf () |
fea681da MK |
80 | argument will be |
81 | .BR _SC_FOO . | |
82 | For a list of options, see | |
83 | .BR posixoptions (7). | |
dd3568a1 | 84 | .PP |
fea681da MK |
85 | For variables or limits, typically, there is a constant |
86 | .BR _FOO , | |
87 | maybe defined in | |
88 | .IR <limits.h> , | |
89 | or | |
90 | .BR _POSIX_FOO , | |
91 | maybe defined in | |
92 | .IR <unistd.h> . | |
93 | The constant will not be defined if the limit is unspecified. | |
94 | If the constant is defined, it gives a guaranteed value, and | |
5c4045cb | 95 | a greater value might actually be supported. |
fea681da MK |
96 | If an application wants to take advantage of values which may change |
97 | between systems, a call to | |
63aa9df0 | 98 | .BR sysconf () |
fea681da | 99 | can be made. |
c13182ef | 100 | The |
4a225b7a | 101 | .BR sysconf () |
fea681da MK |
102 | argument will be |
103 | .BR _SC_FOO . | |
73d8cece | 104 | .SS POSIX.1 variables |
fea681da | 105 | We give the name of the variable, the name of the |
63aa9df0 | 106 | .BR sysconf () |
c4bb193f | 107 | argument used to inquire about its value, |
fea681da | 108 | and a short description. |
dd3568a1 | 109 | .PP |
fea681da MK |
110 | First, the POSIX.1 compatible values. |
111 | .\" [for the moment: only the things that are unconditionally present] | |
112 | .\" .TP | |
113 | .\" .BR AIO_LISTIO_MAX " - " _SC_AIO_LISTIO_MAX | |
114 | .\" (if _POSIX_ASYNCHRONOUS_IO) | |
115 | .\" Maximum number of I/O operations in a single list I/O call. | |
116 | .\" Must not be less than _POSIX_AIO_LISTIO_MAX. | |
117 | .\" .TP | |
118 | .\" .BR AIO_MAX " - " _SC_AIO_MAX | |
119 | .\" (if _POSIX_ASYNCHRONOUS_IO) | |
120 | .\" Maximum number of outstanding asynchronous I/O operations. | |
121 | .\" Must not be less than _POSIX_AIO_MAX. | |
122 | .\" .TP | |
123 | .\" .BR AIO_PRIO_DELTA_MAX " - " _SC_AIO_PRIO_DELTA_MAX | |
124 | .\" (if _POSIX_ASYNCHRONOUS_IO) | |
125 | .\" The maximum amount by which a process can decrease its | |
126 | .\" asynchronous I/O priority level from its own scheduling priority. | |
2fda57bd | 127 | .\" Must be nonnegative. |
fea681da MK |
128 | .TP |
129 | .BR ARG_MAX " - " _SC_ARG_MAX | |
130 | The maximum length of the arguments to the | |
3a72373c | 131 | .BR exec (3) |
fea681da | 132 | family of functions. |
8c4f34f8 MK |
133 | Must not be less than |
134 | .B _POSIX_ARG_MAX | |
135 | (4096). | |
fea681da MK |
136 | .TP |
137 | .BR CHILD_MAX " - " _SC_CHILD_MAX | |
82e07898 | 138 | The maximum number of simultaneous processes per user ID. |
8c4f34f8 MK |
139 | Must not be less than |
140 | .B _POSIX_CHILD_MAX | |
141 | (25). | |
fea681da MK |
142 | .TP |
143 | .BR HOST_NAME_MAX " - " _SC_HOST_NAME_MAX | |
82e07898 | 144 | Maximum length of a hostname, not including the terminating null byte, |
28d88c17 | 145 | as returned by |
fea681da | 146 | .BR gethostname (2). |
8c4f34f8 MK |
147 | Must not be less than |
148 | .B _POSIX_HOST_NAME_MAX | |
149 | (255). | |
fea681da MK |
150 | .TP |
151 | .BR LOGIN_NAME_MAX " - " _SC_LOGIN_NAME_MAX | |
28d88c17 | 152 | Maximum length of a login name, including the terminating null byte. |
8c4f34f8 MK |
153 | Must not be less than |
154 | .B _POSIX_LOGIN_NAME_MAX | |
155 | (9). | |
fea681da | 156 | .TP |
4d300f4a JT |
157 | .BR NGROUPS_MAX " - " _SC_NGROUPS_MAX |
158 | Maximum number of supplementary group IDs. | |
159 | .TP | |
fea681da MK |
160 | .BR "" "clock ticks - " _SC_CLK_TCK |
161 | The number of clock ticks per second. | |
c13182ef MK |
162 | The corresponding variable is obsolete. |
163 | It was of course called | |
fea681da MK |
164 | .BR CLK_TCK . |
165 | (Note: the macro | |
166 | .B CLOCKS_PER_SEC | |
167 | does not give information: it must equal 1000000.) | |
168 | .TP | |
169 | .BR OPEN_MAX " - " _SC_OPEN_MAX | |
170 | The maximum number of files that a process can have open at any time. | |
8c4f34f8 MK |
171 | Must not be less than |
172 | .B _POSIX_OPEN_MAX | |
173 | (20). | |
fea681da MK |
174 | .TP |
175 | .BR PAGESIZE " - " _SC_PAGESIZE | |
c13182ef MK |
176 | Size of a page in bytes. |
177 | Must not be less than 1. | |
f19efb02 MK |
178 | .TP |
179 | .BR PAGE_SIZE " - " _SC_PAGE_SIZE | |
180 | A synonym for | |
181 | .BR PAGESIZE / _SC_PAGESIZE . | |
182 | (Both | |
183 | .BR PAGESIZE | |
184 | and | |
185 | .BR PAGE_SIZE | |
186 | are specified in POSIX.) | |
fea681da MK |
187 | .TP |
188 | .BR RE_DUP_MAX " - " _SC_RE_DUP_MAX | |
189 | The number of repeated occurrences of a BRE permitted by | |
190 | .BR regexec (3) | |
191 | and | |
192 | .BR regcomp (3). | |
8c4f34f8 MK |
193 | Must not be less than |
194 | .B _POSIX2_RE_DUP_MAX | |
195 | (255). | |
fea681da MK |
196 | .TP |
197 | .BR STREAM_MAX " - " _SC_STREAM_MAX | |
198 | The maximum number of streams that a process can have open at any | |
c13182ef MK |
199 | time. |
200 | If defined, it has the same value as the standard C macro | |
fea681da | 201 | .BR FOPEN_MAX . |
8c4f34f8 MK |
202 | Must not be less than |
203 | .B _POSIX_STREAM_MAX | |
204 | (8). | |
fea681da | 205 | .TP |
3dd1c10f | 206 | .BR SYMLOOP_MAX " - " _SC_SYMLOOP_MAX |
fea681da | 207 | The maximum number of symbolic links seen in a pathname before resolution |
097585ed MK |
208 | returns |
209 | .BR ELOOP . | |
8c4f34f8 MK |
210 | Must not be less than |
211 | .B _POSIX_SYMLOOP_MAX | |
212 | (8). | |
fea681da MK |
213 | .TP |
214 | .BR TTY_NAME_MAX " - " _SC_TTY_NAME_MAX | |
c13182ef | 215 | The maximum length of terminal device name, |
28d88c17 | 216 | including the terminating null byte. |
8c4f34f8 | 217 | Must not be less than |
0daa9e92 | 218 | .B _POSIX_TTY_NAME_MAX |
8c4f34f8 | 219 | (9). |
fea681da MK |
220 | .TP |
221 | .BR TZNAME_MAX " - " _SC_TZNAME_MAX | |
222 | The maximum number of bytes in a timezone name. | |
8c4f34f8 | 223 | Must not be less than |
0daa9e92 | 224 | .B _POSIX_TZNAME_MAX |
8c4f34f8 | 225 | (6). |
fea681da MK |
226 | .TP |
227 | .BR _POSIX_VERSION " - " _SC_VERSION | |
228 | indicates the year and month the POSIX.1 standard was approved in the | |
229 | format | |
1368e847 MK |
230 | .BR YYYYMML ; |
231 | the value | |
fea681da MK |
232 | .B 199009L |
233 | indicates the Sept. 1990 revision. | |
73d8cece | 234 | .SS POSIX.2 variables |
fea681da MK |
235 | Next, the POSIX.2 values, giving limits for utilities. |
236 | .TP | |
237 | .BR BC_BASE_MAX " - " _SC_BC_BASE_MAX | |
238 | indicates the maximum | |
239 | .I obase | |
240 | value accepted by the | |
241 | .BR bc (1) | |
242 | utility. | |
243 | .TP | |
244 | .BR BC_DIM_MAX " - " _SC_BC_DIM_MAX | |
245 | indicates the maximum value of elements permitted in an array by | |
246 | .BR bc (1). | |
247 | .TP | |
248 | .BR BC_SCALE_MAX " - " _SC_BC_SCALE_MAX | |
249 | indicates the maximum | |
250 | .I scale | |
251 | value allowed by | |
252 | .BR bc (1). | |
253 | .TP | |
254 | .BR BC_STRING_MAX " - " _SC_BC_STRING_MAX | |
255 | indicates the maximum length of a string accepted by | |
256 | .BR bc (1). | |
257 | .TP | |
258 | .BR COLL_WEIGHTS_MAX " - " _SC_COLL_WEIGHTS_MAX | |
259 | indicates the maximum numbers of weights that can be assigned to an | |
260 | entry of the | |
261 | .B LC_COLLATE order | |
262 | keyword in the locale definition file, | |
263 | .TP | |
264 | .BR EXPR_NEST_MAX " - " _SC_EXPR_NEST_MAX | |
265 | is the maximum number of expressions which can be nested within | |
266 | parentheses by | |
267 | .BR expr (1). | |
268 | .TP | |
269 | .BR LINE_MAX " - " _SC_LINE_MAX | |
4a5d77d4 | 270 | The maximum length of a utility's input line, either from |
c13182ef | 271 | standard input or from a file. |
fa233003 | 272 | This includes space for a trailing |
fea681da MK |
273 | newline. |
274 | .TP | |
275 | .BR RE_DUP_MAX " - " _SC_RE_DUP_MAX | |
276 | The maximum number of repeated occurrences of a regular expression when | |
277 | the interval notation | |
31a6818e | 278 | .B \e{m,n\e} |
fea681da MK |
279 | is used. |
280 | .TP | |
281 | .BR POSIX2_VERSION " - " _SC_2_VERSION | |
282 | indicates the version of the POSIX.2 standard in the format of | |
283 | YYYYMML. | |
284 | .TP | |
961abb97 | 285 | .BR POSIX2_C_DEV " - " _SC_2_C_DEV |
fea681da MK |
286 | indicates whether the POSIX.2 C language development facilities are |
287 | supported. | |
288 | .TP | |
50a0922f | 289 | .BR POSIX2_FORT_DEV " - " _SC_2_FORT_DEV |
fea681da MK |
290 | indicates whether the POSIX.2 FORTRAN development utilities are |
291 | supported. | |
292 | .TP | |
293 | .BR POSIX2_FORT_RUN " - " _SC_2_FORT_RUN | |
72c90260 | 294 | indicates whether the POSIX.2 FORTRAN run-time utilities are supported. |
fea681da MK |
295 | .TP |
296 | .BR _POSIX2_LOCALEDEF " - " _SC_2_LOCALEDEF | |
297 | indicates whether the POSIX.2 creation of locates via | |
298 | .BR localedef (1) | |
299 | is supported. | |
300 | .TP | |
301 | .BR POSIX2_SW_DEV " - " _SC_2_SW_DEV | |
302 | indicates whether the POSIX.2 software development utilities option is | |
303 | supported. | |
304 | .PP | |
305 | These values also exist, but may not be standard. | |
306 | .TP | |
307 | .BR "" " - " _SC_PHYS_PAGES | |
c13182ef MK |
308 | The number of pages of physical memory. |
309 | Note that it is possible | |
fea681da | 310 | for the product of this value and the value of |
c9764208 | 311 | .B _SC_PAGESIZE |
fea681da MK |
312 | to overflow. |
313 | .TP | |
314 | .BR "" " - " _SC_AVPHYS_PAGES | |
315 | The number of currently available pages of physical memory. | |
a19d984e MK |
316 | .TP |
317 | .BR "" " - " _SC_NPROCESSORS_CONF | |
318 | The number of processors configured. | |
39a6b7e8 MK |
319 | See also |
320 | .BR get_nprocs_conf (3). | |
a19d984e MK |
321 | .TP |
322 | .BR "" " - " _SC_NPROCESSORS_ONLN | |
323 | The number of processors currently online (available). | |
39a6b7e8 MK |
324 | See also |
325 | .BR get_nprocs_conf (3). | |
47297adb | 326 | .SH RETURN VALUE |
480ef6d9 MK |
327 | The return value of |
328 | .BR sysconf () | |
329 | is one of the following: | |
330 | .IP * 3 | |
331 | On error, \-1 is returned and | |
332 | .I errno | |
333 | is set to indicate the cause of the error | |
334 | (for example, | |
335 | .BR EINVAL , | |
336 | indicating that | |
337 | .I name | |
338 | is invalid). | |
339 | .IP * | |
fea681da MK |
340 | If |
341 | .I name | |
480ef6d9 MK |
342 | corresponds to a maximum or minimum limit, and that limit is indeterminate, |
343 | \-1 is returned and | |
fea681da MK |
344 | .I errno |
345 | is not changed. | |
480ef6d9 MK |
346 | (To distinguish an indeterminate limit from an error, set |
347 | .I errno | |
348 | to zero before the call, and then check whether | |
349 | .I errno | |
350 | is nonzero when \-1 is returned.) | |
351 | .IP * | |
352 | If | |
353 | .I name | |
354 | corresponds to an option, | |
355 | a positive value is returned if the option is supported, | |
356 | and \-1 is returned if the option is not supported. | |
357 | .IP * | |
358 | Otherwise, | |
359 | the current value of the option or limit is returned. | |
360 | This value will not be more restrictive than | |
361 | the corresponding value that was described to the application in | |
362 | .I <unistd.h> | |
363 | or | |
364 | .I <limits.h> | |
365 | when the application was compiled. | |
646896d3 MK |
366 | .SH ERRORS |
367 | .TP | |
368 | .B EINVAL | |
369 | .I name | |
370 | is invalid. | |
dfcbc01f ZL |
371 | .SH ATTRIBUTES |
372 | For an explanation of the terms used in this section, see | |
373 | .BR attributes (7). | |
374 | .TS | |
375 | allbox; | |
376 | lb lb lb | |
377 | l l l. | |
378 | Interface Attribute Value | |
379 | T{ | |
380 | .BR sysconf () | |
381 | T} Thread safety MT-Safe env | |
382 | .TE | |
47297adb | 383 | .SH CONFORMING TO |
b9ced44f | 384 | POSIX.1-2001, POSIX.1-2008. |
fea681da MK |
385 | .SH BUGS |
386 | It is difficult to use | |
387 | .B ARG_MAX | |
388 | because it is not specified how much of the argument space for | |
3a72373c | 389 | .BR exec (3) |
fea681da MK |
390 | is consumed by the user's environment variables. |
391 | .PP | |
392 | Some returned values may be huge; they are not suitable for allocating | |
393 | memory. | |
47297adb | 394 | .SH SEE ALSO |
fea681da MK |
395 | .BR bc (1), |
396 | .BR expr (1), | |
ceff5191 | 397 | .BR getconf (1), |
fea681da | 398 | .BR locale (1), |
e812955a | 399 | .BR confstr (3), |
fea681da MK |
400 | .BR fpathconf (3), |
401 | .BR pathconf (3), | |
402 | .BR posixoptions (7) |