1.\" $NetBSD: sysconf.3,v 1.31 2004/11/10 04:21:25 lukem Exp $ 2.\" 3.\" Copyright (c) 1993 4.\" The Regents of the University of California. All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions and the following disclaimer. 11.\" 2. Redistributions in binary form must reproduce the above copyright 12.\" notice, this list of conditions and the following disclaimer in the 13.\" documentation and/or other materials provided with the distribution. 14.\" 3. Neither the name of the University nor the names of its contributors 15.\" may be used to endorse or promote products derived from this software 16.\" without specific prior written permission. 17.\" 18.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 19.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 22.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28.\" SUCH DAMAGE. 29.\" 30.\" @(#)sysconf.3 8.3 (Berkeley) 4/19/94 31.\" 32.Dd November 10, 2004 33.Dt SYSCONF 3 34.Os 35.Sh NAME 36.Nm sysconf 37.Nd get configurable system variables 38.Sh LIBRARY 39.Lb libc 40.Sh SYNOPSIS 41.In unistd.h 42.Ft long 43.Fn sysconf "int name" 44.Sh DESCRIPTION 45This interface is defined by 46.St -p1003.1-88 . 47A far more complete interface is available using 48.Xr sysctl 3 . 49.Pp 50The 51.Fn sysconf 52function provides a method for applications to determine the current 53value of a configurable system limit or option variable. 54The 55.Fa name 56argument specifies the system variable to be queried. 57Symbolic constants for each name value are found in the include file 58.Aq Pa unistd.h . 59.Pp 60The available values are as follows: 61.Pp 62.Bl -tag -width "123456" 63.Pp 64.It Li _SC_ARG_MAX 65The maximum bytes of argument to 66.Xr execve 2 . 67.It Li _SC_ATEXIT_MAX 68The maxmimum number of functions that may be registered with 69.Xr atexit 3 . 70.It Li _SC_BARRIERS 71The version of 72.St -p1003.1 73and its 74Barriers 75option to which the system attempts to conform, 76otherwise \-1. 77.It Li _SC_CHILD_MAX 78The maximum number of simultaneous processes per user id. 79.It Li _SC_CLK_TCK 80The number of clock ticks per second. 81.It Li _SC_FSYNC 82Return 1 if the File Synchronization Option is available on this system, 83otherwise \-1. 84.It Li _SC_IOV_MAX 85The maximum number of 86.Va iovec 87structures that a process has available for use with 88.Xr preadv 2 , 89.Xr pwritev 2 , 90.Xr readv 2 , 91.Xr recvmsg 2 , 92.Xr sendmsg 2 93or 94.Xr writev 2 . 95.It Li _SC_JOB_CONTROL 96Return 1 if job control is available on this system, otherwise \-1. 97.It Li _SC_LOGIN_NAME_MAX 98Returns the size of the storage required for a login name, in bytes, 99including the terminating NUL. 100.It Li _SC_MAPPED_FILES 101Return 1 if the Memory Mapped Files Option is available on this system, 102otherwise \-1. 103.It Li _SC_MEMLOCK 104Return 1 if the Process Memory Locking Option is available on this system, 105otherwise \-1. 106.It Li _SC_MEMLOCK_RANGE 107Return 1 if the Range Memory Locking Option is available on this system, 108otherwise \-1. 109.It Li _SC_MEMORY_PROTECTION 110Return 1 if the Memory Protection Option is available on this system, 111otherwise \-1. 112.It Li _SC_MONOTONIC_CLOCK 113Return the 114.Tn POSIX 115version the implementation of the Monotonic Clock Option 116on this system conforms to, 117or \-1 if unavailable. 118.It Li _SC_NGROUPS_MAX 119The maximum number of supplemental groups. 120.It Li _SC_OPEN_MAX 121The maximum number of open files per process. 122.It Li _SC_PAGESIZE 123The size of a system page in bytes. 124.It Li _SC_READER_WRITER_LOCKS 125The version of 126.St -p1003.1 127and its 128Read-Write Locks 129option to which the system attempts to conform, 130otherwise \-1. 131.It Li _SC_SEMAPHORES 132The version of 133.St -p1003.1 134and its 135Semaphores 136option to which the system attempts to conform, 137otherwise \-1. 138.Pp 139Availability of the 140Semaphores 141option depends on the 142.Li P1003_1B_SEMAPHORE 143kernel option. 144.It Li _SC_SPIN_LOCKS 145The version of 146.St -p1003.1 147and its 148Spin Locks 149option to which the system attempts to conform, 150otherwise \-1. 151.It Li _SC_STREAM_MAX 152The minimum maximum number of streams that a process may have open 153at any one time. 154.It Li _SC_SYNCHRONIZED_IO 155Return 1 if the Synchronized I/O Option is available on this system, 156otherwise \-1. 157.It Li _SC_THREADS 158The version of 159.St -p1003.1 160and its 161Threads 162option to which the system attempts to conform, 163otherwise \-1. 164.It Li _SC_TIMERS 165The version of 166.St -p1003.1 167and its 168Timers 169option to which the system attempts to conform, 170otherwise \-1. 171.It Li _SC_TZNAME_MAX 172The minimum maximum number of types supported for the name of a 173timezone. 174.It Li _SC_SAVED_IDS 175Returns 1 if saved set-group and saved set-user ID is available, 176otherwise \-1. 177.It Li _SC_VERSION 178The version of ISO/IEC 9945 (POSIX 1003.1) with which the system 179attempts to comply. 180.It Li _SC_XOPEN_SHM 181Return 1 if the 182.St -xpg4.2 183Shared Memory 184option is available on this system, 185otherwise \-1. 186.Pp 187Availability of the 188Shared Memory 189option depends on the 190.Li SYSVSHM 191kernel option. 192.It Li _SC_BC_BASE_MAX 193The maximum ibase/obase values in the 194.Xr bc 1 195utility. 196.It Li _SC_BC_DIM_MAX 197The maximum array size in the 198.Xr bc 1 199utility. 200.It Li _SC_BC_SCALE_MAX 201The maximum scale value in the 202.Xr bc 1 203utility. 204.It Li _SC_BC_STRING_MAX 205The maximum string length in the 206.Xr bc 1 207utility. 208.It Li _SC_COLL_WEIGHTS_MAX 209The maximum number of weights that can be assigned to any entry of 210the LC_COLLATE order keyword in the locale definition file. 211.It Li _SC_EXPR_NEST_MAX 212The maximum number of expressions that can be nested within 213parenthesis by the 214.Xr expr 1 215utility. 216.It Li _SC_LINE_MAX 217The maximum length in bytes of a text-processing utility's input 218line. 219.It Li _SC_RE_DUP_MAX 220The maximum number of repeated occurrences of a regular expression 221permitted when using interval notation. 222.It Li _SC_2_VERSION 223The version of POSIX 1003.2 with which the system attempts to comply. 224.It Li _SC_2_C_BIND 225Return 1 if the system's C-language development facilities support the 226C-Language Bindings Option, otherwise \-1. 227.It Li _SC_2_C_DEV 228Return 1 if the system supports the C-Language Development Utilities Option, 229otherwise \-1. 230.It Li _SC_2_CHAR_TERM 231Return 1 if the system supports at least one terminal type capable of 232all operations described in POSIX 1003.2, otherwise \-1. 233.It Li _SC_2_FORT_DEV 234Return 1 if the system supports the FORTRAN Development Utilities Option, 235otherwise \-1. 236.It Li _SC_2_FORT_RUN 237Return 1 if the system supports the FORTRAN Runtime Utilities Option, 238otherwise \-1. 239.It Li _SC_2_LOCALEDEF 240Return 1 if the system supports the creation of locales, otherwise \-1. 241.It Li _SC_2_SW_DEV 242Return 1 if the system supports the Software Development Utilities Option, 243otherwise \-1. 244.It Li _SC_2_UPE 245Return 1 if the system supports the User Portability Utilities Option, 246otherwise \-1. 247.It Li _SC_GETGR_R_SIZE_MAX 248The minimum size of the 249.Fa buffer 250passed to 251.Xr getgrgid_r 3 252and 253.Xr getgrnam_r 3 . 254.It Li _SC_GETPW_R_SIZE_MAX 255The minimum size of the 256.Fa buffer 257passed to 258.Xr getpwnam_r 3 259and 260.Xr getpwuid_r 3 . 261.El 262.Sh RETURN VALUES 263If the call to 264.Nm sysconf 265is not successful, \-1 is returned and 266.Va errno 267is set appropriately. 268Otherwise, if the variable is associated with functionality that is not 269supported, \-1 is returned and 270.Va errno 271is not modified. 272Otherwise, the current variable value is returned. 273.Sh ERRORS 274The 275.Fn sysconf 276function may fail and set 277.Va errno 278for any of the errors specified for the library functions 279.Xr sysctl 3 . 280In addition, the following error may be reported: 281.Bl -tag -width Er 282.It Bq Er EINVAL 283The value of the 284.Fa name 285argument is invalid. 286.El 287.Sh SEE ALSO 288.Xr sysctl 3 289.Sh STANDARDS 290The 291.Fn sysconf 292function conforms to 293.St -p1003.1-90 . 294.Sh HISTORY 295The 296.Nm sysconf 297function first appeared in 298.Bx 4.4 . 299.Sh BUGS 300The value for _SC_STREAM_MAX is a minimum maximum, and required to be 301the same as ANSI C's FOPEN_MAX, so the returned value is a ridiculously 302small and misleading number. 303