sysconf(3C)                                                        sysconf(3C)


NAME
     sysconf - get configurable system variables

SYNOPSIS
     #include <unistd.h>
     long sysconf(int name);

DESCRIPTION
     The sysconf function provides a method for an application to determine
     the current value of a configurable system limit or option (variable).
     By using this function, applications can be more portable across
     different operating systems.

     The name argument represents the system variable to be queried.  Some of
     the limits have a minimal value defined by POSIX or XPG4 which may have a
     higher value under IRIX.  Some limits are fixed in the system and some
     may be altered by the system administrator (see systune(1M) for
     information on how to change system limits).  In general, the values
     returned by sysconf will be constant for the duration of a process.  In
     various manual pages, limits are specified within braces (e.g. {ARG_MAX}.
     The limit name, prepended with a _SC_ is the name to be used with
     sysconf.  For options such as {POSIX2_VERSION}, the name to be used as
     the argument to name is the option name, minus POSIX and _SC_ prepended
     (_SC_2_VERSION).  The following lists the set of system variables from
     <unistd.h> that can be returned by sysconf.


     NAME                MEANING

     _SC_ARG_MAX         Maximum length of arguments for the exec functions,
                         in bytes, including environment data.

     _SC_ATEXIT_MAX      Maximum number of functions that may be registered
                         with atexit().  This value is always set at 37 in
                         Irix.  This value is currently not able to be changed
                         in Irix.

     _SC_CHILD_MAX       Maximum number of simultaneous processes per real
                         user ID.

     _SC_IOV_MAX         Maximum number of iovec structures that one process
                         has available for use with readv() or writev().  This
                         value is currently 512 or higher in Irix.  This value
                         is currently not able to be changed in Irix.

     _SC_CLK_TCK         Clock ticks per second.

     _SC_NACLS_MAX       Always 0 on Irix.


     _SC_NGROUPS_MAX     Maximum number of simultaneous supplementary group
                         IDs per process.

     _SC_OPEN_MAX        Maximum number of files that one process can have
                         open at any given time.

     _SC_PASS_MAX        Maximum number of characters in a password.

     _SC_PAGESIZE        The memory page size of the system expressed in
                         bytes.  This is the fundamental unit of memory
                         management of the operating system.

     _SC_JOB_CONTROL     Always 1 on Irix which supports job control.

     _SC_SAVED_IDS       Always 1 on Irix which supports this feature of
                         setuid(2).

     _SC_VERSION         The version of POSIX currently supported.

     _SC_XOPEN_VERSION   The version of X/Open currently supported.

     _SC_LOGNAME_MAX     Maximum number of characters in a login name.

     _SC_NPROC_CONF      Total number of processors configured in the machine.

     _SC_NPROC_ONLN      Total number of processors currently online.

     _SC_STREAM_MAX      The number streams that one process can have open at
                         one time.

     _SC_TZNAME_MAX      The maximum number of bytes supported for the name of
                         a time zone.

     _SC_RTSIG_MAX       The number of realtime signal values available.

     _SC_SIGQUEUE_MAX    The maximum number of queued signals.

     _SC_REALTIME_SIGNALS
                         Always 1 on Irix, meaning that realtime signals are
                         supported.

     _SC_ACL             Returns 1 if Access Control Lists are supported.

     _SC_AUDIT           Returns 1 if Auditing is supported.

     _SC_INF             Returns 1 if Information Labels are supported.

     _SC_MAC             Returns 1 if Mandatory Access Control is supported.

     _SC_CAP             Returns 0 if capabilities are disabled.  Returns 1 if
                         capabilities and superuser are supported.  Returns 2
                         if capabilities are supported and superuser is not


                         supported.

     _SC_IP_SECOPTS      Returns 1 if IP Security Options are supported.

     _SC_PRIORITIZED_IO  Returns 1 if the POSIX 1003.1b prioritized input and
                         output option is supported.

     _SC_AIO_MAX         The maximum number of simultaneous asynchronous I/O
                         requests outstanding.

     _SC_AIO_LISTIO_MAX  The maximum number of queued asynchronous I/O
                         requests.

     _SC_ASYNCHRONOUS_IO Always 1 on Irix, meaning that asynchronous i/o is
                         supported.

     _SC_KERN_POINTERS   Allows binaries to check if the running kernel is 32
                         bits or 64 bits.  Possible return values for 32 bit
                         kernels are -1 or 32.  For 64 bit kernels the return
                         value is 64.

     _SC_KERN_SIM        Allows binaries to check if the running kernel is a
                         32, N32, or 64 bit kernel.  Possible return values
                         are (defined in sgidefs.h) _MIPS_SIM_ABI32,
                         _MIPS_SIM_NABI32, _MIPS_SIM_ABI64, and -1 for error.

     _SC_DELAYTIMER_MAX  Maximum number of timer expiration overruns.

     _SC_MQ_OPEN_MAX     The maximum number of open message queue descriptors
                         that a process may hold.

     _SC_MQ_PRIO_MAX     The maximum number of message priorities supported.

     _SC_SEM_NSEMS_MAX   The maximum number of semaphores that a process may
                         have.

     _SC_SEM_VALUE_MAX   The maximum value that a semaphore may have.

     _SC_TIMER_MAX       Maximum number of timers supported per process.

     _SC_FSYNC           Returns 1 if POSIX 1003.1b file synchronization is
                         supported.

     _SC_MAPPED_FILES    Returns 1 if POSIX 1003.1b mapped files option is
                         supported.

     _SC_MEMLOCK         Returns 1 if POSIX 1003.1b process memory locking
                         option is supported.

     _SC_MEMLOCK_RANGE   Returns 1 if POSIX 1003.1b range memory locking
                         option is supported.


     _SC_MEMORY_PROTECTION
                         Returns 1 if POSIX 1003.1b memory protection option
                         is supported.

     _SC_MESSAGE_PASSING Returns 1 if POSIX 1003.1b message passing option is
                         supported.

     _SC_PRIORITY_SCHEDULING
                         Returns 1 if POSIX 1003.1b process scheduling option
                         is supported.

     _SC_SEMAPHORES      Returns 1 if POSIX 1003.1b semaphore option is
                         supported.

     _SC_SHARED_MEMORY_OBJECTS
                         Returns 1 if POSIX 1003.1b shared memory object
                         option is supported.

     _SC_SYNCHRONIZED_IO Returns 1 if POSIX 1003.1b synchronized input and
                         output option is supported.

     _SC_TIMERS          Returns 1 if POSIX 1003.1b timers option is
                         supported.

     _SC_XOPEN_SHM       If the X/Open Shared Memory Feature Group is
                         supported, then a value of 1 is returned.  If it is
                         not supported then a value of -1 is returned.

     _SC_BC_BASE_MAX     Returns the maximum obase value allowed by the bc
                         utility.

     _SC_BC_DIM_MAX      Returns the maximum number of elements permitted in
                         an array by the bc utility.

     _SC_BC_SCALE_MAX    Returns the maximum scale value allowed by the bc
                         utility.

     _SC_BC_STRING_MAX   Returns the maximum length of a string constant
                         accepted by the bc utility.

     _SC_COLL_WEIGHTS_MAX
                         Returns the maximum number of weights that can be
                         assigned to an entry of the LC_COLLATE order keyword
                         in the locale definition file.

     _SC_EXPR_NEST_MAX   Returns the maximum number of expressions that can be
                         nested within parenthesis by the expr utility.

     _SC_RE_DUP_MAX      Returns the maximum number of repeated occurrences of
                         a BRE permitted when using the interval notation
                         \{m,n\}.


     _SC_LINE_MAX        Returns the maximum length, in bytes, of the input
                         line of a utility (either standard input or another
                         file), when the utility is described as processing
                         text files.  The length includes room for the
                         trailing <newline>.  Some utilities has different
                         limits specified in their manual pages.

     _SC_XOPEN_CRYPT     The encryption routines crypt(), encrypt() and
                         setkey() are always provided, and hence the setting
                         for this X/Open Feature Group is to return the value
                         1.  Note that in certain markets the decryption
                         algorithm may not be exported and in that case,
                         encrypt() returns ENOSYS for the decryption
                         operation.

     _SC_2_C_BIND        Returns 1 if the POSIX 1003.2 C-language development
                         facilities option is supported.

     _SC_2_LOCALEDEF     Returns 1 if the POSIX 1003.2 creation of locales
                         option is supported.

     _SC_2_C_DEV         Returns 1 if the POSIX 1003.2 C-language development
                         utilities option is supported.

     _SC_2_C_VERSION     Returns the value of POSIX2_C_VERSION which indicates
                         the version of the POSIX 1003.2 standard C-language
                         binding option that IRIX conforms to.

     _SC_2_CHAR_TERM     Returns 1 if the system supports at least one
                         terminal type capable of all operations described in
                         POSIX 1003.2.

     _SC_2_FORT_DEV      Returns 1 if the POSIX 1003.2 FORTRAN development
                         utilities option is supported.

     _SC_2_FORT_RUN      Returns 1 if the POSIX 1003.2 FORTRAN runtime
                         utilities option is supported.

     _SC_2_SW_DEV        Returns 1 if the POSIX 1003.2 software development
                         utilities option is supported.

     _SC_2_UPE           Returns 1 if the POSIX 1003.2 user portability
                         utilities option is supported.

     _SC_XOPEN_ENH_I18N  Returns 1 if the X/Open enhanced internationalization
                         feature group is supported.

     _SC_2_VERSION       Returns the value of POSIX2_VERSION which indicates
                         the version of the POSIX 1003.2 standard that the
                         utilities in IRIX conform to.


     _SC_GETGR_R_SIZE_MAX
                         Maximum size of getgrgid_r(3C) and getgrnam_r(3C)
                         data buffers.

     _SC_GETPW_R_SIZE_MAX
                         Maximum size of getpwuid_r(3C) and getpwnam_r(3C)
                         data buffers.

     _SC_LOGIN_NAME_MAX  The size of storage required for a login name, in
                         bytes, including the terminating null.

     _SC_THREAD_DESTRUCTORS_ITERATIONS
                         The number of attempts made to destroy a thread's
                         thread-specific data values on thread exit.

     _SC_THREAD_KEYS_MAX The number of data keys per process.

     _SC_THREAD_STACK_MIN
                         The minimum size in bytes required for a thread
                         stack.

     _SC_THREAD_THREADS_MAX
                         The number of threads per process.

     _SC_TTY_NAME_MAX    The size of storage required for a terminal device
                         name, in bytes, including the terminating null.

     _SC_THREADS         Returns 1 if the POSIX 1003.1c threads option is
                         supported.

     _SC_THREAD_ATTR_STACKADDR
                         Returns 1 if the POSIX 1003.1c thread stack address
                         attribute option is supported.

     _SC_THREAD_ATTR_STACKSIZE
                         Returns 1 if the POSIX 1003.1c thread stack size
                         attribute option is supported.

     _SC_THREAD_PRIORITY_SCHEDULING
                         Returns 1 if the POSIX 1003.1c thread execution
                         scheduling option is supported.

     _SC_THREAD_PRIO_INHERIT
                         Returns 1 if the POSIX 1003.1c priority inheritance
                         option is supported.

     _SC_THREAD_PRIO_PROTECT
                         Returns 1 if the POSIX 1003.1c priority protection
                         option is supported.


     _SC_THREAD_PROCESS_SHARED
                         Returns 1 if the POSIX 1003.1c process-shared
                         synchronization option is supported.

     _SC_THREAD_SAFE_FUNCTIONS
                         Returns 1 if the POSIX 1003.1c thread-safe functions
                         option is supported.

     _SC_MMAP_FIXED_ALIGNMENT
                         The minimum alignment required for MAP_FIXED mmap(2)
                         calls.  This is the same as _SC_PAGESIZE except on
                         the MIPS R4000PC, R4600 and R5000 processors.

     _SC_SOFTPOWER       Returns 1 if softpower is supported.

     _SC_XBS5_ILP32_OFF32
                         Always 1 on IRIX, since the compilation model -o32 is
                         always supported.

     _SC_XBS5_ILP32_OFFBIG
                         Always 1 on IRIX, since the compilation model -n32 is
                         always supported.

     _SC_XBS5_LP64_OFF64 Returns 1 if the -64 compilation model is supported
                         on this platform, -1 otherwise.

     _SC_XBS5_LPBIG_OFFBIG
                         Returns 1 if the -64 compilation model is supported
                         on this platform, -1 otherwise.

     _SC_XOPEN_LEGACY    If the X/Open Legacy Feature Group is supported, then
                         a value of 1 is returned.  If it is not supported
                         then a value of -1 is returned.  Always 1 on IRIX and
                         the Legacy features supported designated by the word
                         LEGACY in the individual man pages.

SEE ALSO
     fpathconf(2), sysconf(1), systune(1M).

DIAGNOSTICS
     If name is an invalid value, sysconf will return -1 and set errno to
     indicate the error.  If sysconf fails due to a value of name that is not
     defined on the system, the function will return a value of -1 without
     changing the value of errno.

NOTES
     A call to setrlimit may cause the value of OPEN_MAX to change.


                                                                        Page 7