up | Inhaltsverzeichniss | Kommentar

Manual page for sysconf(3C)

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).

The name argument represents the system variable to be queried. The following table lists the minimal set of system variables from <limits.h> and <unistd.h> that can be returned by sysconf() and the symbolic constants defined in <unistd.h> that are the corresponding values used for name on the SPARC and x86 platforms.

Name                    Return Value               Meaning
----------------------------------------------------------------------------------------
_SC_ARG_MAX             ARG_MAX                    Max size of argv[] plus envp[]
_SC_BC_BASE_MAX         BC_BASE_MAX                Maximum obase values allowed
                                                   by bc
_SC_BC_DIM_MAX          BC_DIM_MAX                 Max number of elements permitted
                                                   in array by bc
_SC_BC_SCALE_MAX        BC_SCALE_MAX               Max scale value allowed by bc
_SC_BC_STRING_MAX       BC_STRING_MAX              Max length of string constant
                                                   allowed by bc
_SC_CHILD_MAX           CHILD_MAX                  Max processes allowed to a UID
_SC_CLK_TCK             CLK_TCK                    Ticks per second (clock_t)
_SC_COLL_WEIGHTS_MAX    COLL_WEIGHTS_MAX           Max number of weights that can
                                                   be assigned to entry of the
                                                   LC_COLLATE order keyword in
                                                   locale definition file
_SC_EXPR_NEST_MAX       EXPR_NEST_MAX              Max number of expressions that
                                                   can be listed within parentheses
                                                   by expr
_SC_LINE_MAX            LINE_MAX                   Max length of input line
_SC_NGROUPS_MAX         NGROUPS_MAX                Max simultaneous groups to which
                                                   one may belong
_SC_OPEN_MAX            OPEN_MAX                   Max open files per process
_SC_PASS_MAX            PASS_MAX                   Max number of significant bytes
                                                   in a password
_SC_2_C_BIN             _POSIX2_C_BIND             Supports the C language
                                                   binding option
_SC_2_C_DEV             _POSIX2_C_DEV              Supports the C language
                                                   development utilities option
_SC_2_C_VERSION         _POSIX2_C_VERSION          Integer value indicating version of
                                                   ISO POSIX-2 standard (Commands)
_SC_2_CHAR_TERM         _POSIX2_CHAR_TERM          Supports at least one terminal
_SC_2_FORT_DEV          _POSIX2_FORT_DEV           Supports FORTRAN Development
                                                   Utilities Option
_SC_2_FORT_RUN          _POSIX2_FORT_RUN           Supports FORTRAN Run-time
                                                   Utilities Option
_SC_2_LOCALEDEF         _POSIX2_LOCALEDEF          Supports the creation of locales
                                                   by the localedef utility
_SC_2_SW_DEV            _POSIX2_SW_DEV             Supports the Software
                                                   Development Utility Option
_SC_2_UPE               _POSIX2_UPE                Supports the User Portability
                                                   Utilities Option
_SC_2_VERSION           _POSIX2_VERSION            Integer value indicating version of
                                                   ISO POSIX-2 standard (C language
                                                   binding)
_SC_JOB_CONTROL         _POSIX_JOB_CONTROL         Job control supported?
_SC_SAVED_IDS           _POSIX_SAVED_IDS           Saved IDs (seteuid()) supported?
_SC_VERSION             _POSIX_VERSION             POSIX.1 version supported
_SC_RE_DUP_MAX          RE_DUP_MAX                 Max number of repeated
                                                   occurrences of a regular
                                                   expression permitted when using
                                                   the interval notation \{m,n\}
_SC_STREAM_MAX          STREAM_MAX                 Number of streams one processed
                                                   can have open at a time
_SC_TZNAME_MAX          TZNAME_MAX                 Max number of bytes supported
                                                   for name of a time zone
_SC_XOPEN_CRYPT         _XOPEN_CRYPT               Supports X/Open Encryption
                                                   Feature Group
_SC_XOPEN_ENH_I18N      _XOPEN_ENH_I18N            Supports X/Open Enhance
                                                   Internationalization Feature Group
_SC_XOPEN_SHM           _XOPEN_SHM                 Supports X/Open Shared Memory
                                                   Feature Group
_SC_XOPEN_VERSION       _XOPEN_VERSION             Integer value indicating version of
                                                   X/Open Portability Guide to which
                                                   implementation conforms
_SC_XOPEN_XCU_VERSION   _XOPEN_XCU_VERSION         Integer value indicating version of
                                                   XCU specification to which
                                                   implementation conforms
_SC_ATEXIT_MAX          ATEXIT_MAX                 Max number of functions that may
                                                   be registered with atexit()
_SC_IOV_MAX             IOV_MAX                    Max number of iovec structures
                                                   that one process has available for
                                                   use with readv() and writev()
_SC_PAGESIZE            PAGESIZE                   System memory page size
_SC_PAGE_SIZE           PAGESIZE                   Same as  _SC_PAGESIZE
_SC_XOPEN_UNIX          _XOPEN_UNIX                Supports X/Open CAE
                                                   Specification, August 1994,
                                                   System Interfaces and Headers,
                                                   Issue 4, Version 2
_SC_LOGNAME_MAX         LOGNAME_MAX
_SC_NPROCESSORS_CONF                               Number of processors configured
_SC_NPROCESSORS_ONLN                               Number of processors online
_SC_PHYS_PAGES                                     Total number of pages of
                                                   physical memory in system
_SC_AVPHYS_PAGES                                   Number physical memory pages
                                                   not currently in use by system
_SC_AIO_LISTIO_MAX      AIO_LISTIO_MAX             Max number of I/O operations
                                                   in a single list I/O call
                                                   supported by implementation
_SC_AIO_MAX             AIO_MAX                    Max number of outstanding
                                                   asynchronous I/O operations
                                                   supported by implementation
_SC_AIO_PRIO_DELTA_MAX  AIO_PRIO_DELTA_MAX         Max amount by which a process
                                                   can decrease its asynchronous
                                                   I/O priority level from its own
                                                   scheduling priority
_SC_DELAYTIMER_MAX      DELAYTIMER_MAX             Max number of timer
                                                   expiration overruns
_SC_GETGR_R_SIZE_MAX    NSS_BUFLEN_GROUP           Max size of group entry buffer.
_SC_GETPW_R_SIZE_MAX    NSS_BUFLEN_PASSWD          Max size of password entry buffer.
_SC_LOGIN_NAME_MAX      LOGNAME_MAX + 1            Max length of login name.
_SC_MQ_OPEN_MAX         MQ_OPEN_MAX                Max number of open message
                                                   queues a process may hold.
_SC_MQ_PRIO_MAX         MQ_PRIO_MAX                Max number of message priorities
                                                   supported by implementation.
_SC_RTSIG_MAX           RTSIG_MAX                  Max number of realtime signals
                                                   reserved for application use
                                                   in this implementation.
_SC_SEM_NSEMS_MAX       SEM_NSEMS_MAX              Max number of semaphores
                                                   that a process may have.
_SC_SEM_VALUE_MAX       SEM_VALUE_MAX              Max value a semaphore may have.
_SC_SIGQUEUE_MAX        SIGQUEUE_MAX               Max number of queued signals
                                                   that a process may send and have
                                                   pending at receiver(s) at a time.
_SC_TIMER_MAX           TIMER_MAX                  Max number of timers per process
                                                   supported by implementation.
_SC_ASYNCHRONOUS_IO     _POSIX_ASYNCHRONOUS_IO     Supports Asynchronous I/O.
_SC_FSYNC               _POSIX_FSYNC               Supports File Synchronization.
_SC_MAPPED_FILES        _POSIX_MAPPED_FILES        Supports Memory Mapped Files.
_SC_MEMLOCK             _POSIX_MEMLOCK             Supports Process Memory Locking.
_SC_MEMLOCK_RANGE       _POSIX_MEMLOCK_RANGE       Supports Range Memory Locking.
_SC_MEMORY_PROTECTION   _POSIX_MEMORY_PROTECTION   Supports Memory Protection.
_SC_MESSAGE_PASSING     _POSIX_MESSAGE_PASSING     Supports Message Passing.
_SC_PRIORITIZED_IO      _POSIX_PRIORITIZED_IO      Supports Prioritized I/O.
_SC_PRIORITY_SCHEDULING _POSIX_PRIORITY_SCHEDULING Supports Process Scheduling
_SC_REALTIME_SIGNALS    _POSIX_REALTIME_SIGNALS    Supports Realtime Signals.
_SC_SEMAPHORES          _POSIX_SEMAPHORES          Supports Semaphores.
_SC_SHARED_MEMORY_      _POSIX_SHARED_MEMORY_      Supports Shared Memory
    OBJECTS                 OBJECTS                Objects.
_SC_SYNCHRONIZED_IO     _POSIX_SYNCHRONIZED_IO     Supports Synchronized I/O.
_SC_TIMERS              _POSIX_TIMERS              Supports Timers.
_SC_THREAD_DESTRUCTOR_  PTHREAD_DESTRUCTOR_        Number attempts made to destroy
    ITERATIONS              ITERATIONS             thread-specific data on thread exit.
_SC_THREAD_KEYS_MAX     PTHREAD_KEYS_MAX           Max number of data keys
                                                   per process.
_SC_THREAD_STACK_MIN    PTHREAD_STACK_MIN          Min byte size of thread
                                                   stack storage.
_SC_THREAD_THREADS_MAX  PTHREAD_THREADS_MAX        Max number of threads per process.
_SC_TTY_NAME_MAX        TTYNAME_MAX                Max length of tty device name.
_SC_THREADS             _POSIX_THREADS             Supports Threads option.
_SC_THREAD_ATTR_STACKADDR        _POSIX_THREAD_ATTR_STACKADDR
                                   Supports Thread Stack Address Attribute option.
_SC_THREAD_ATTR_STACKSIZE        _POSIX_THREAD_ATTR_STACKSIZE
                                   Supports Thread Stack Size Attribute option.
_SC_THREAD_PRIORITY_SCHEDULING   _POSIX_THREAD_PRIORITY_SCHEDULING
                                   Supports Thread Execution Scheduling option.
_SC_THREAD_PRIO_INHERIT          _POSIX_THREAD_PRIO_INHERIT
                                   Supports Priority Inheritance option.
_SC_THREAD_PRIO_PROTECT          _POSIX_THREAD_PRIO_PROTECT
                                   Supports Priority Protection option.
_SC_THREAD_PROCESS_SHARED        _POSIX_THREAD_PROCESS_SHARED
                                   Supports Process-Shared Synchronization option.
_SC_THREAD_SAFE_FUNCTIONS        _POSIX_THREAD_SAFE_FUNCTIONS
                                   Supports Thread-Safe Functions option.

The following table lists the names and return values for SPARC and x86 platform variables.

Name                Return Value
                    SPARC, x86
---------------------------------
_SC_COHER_BLKSZ     EINVAL
_SC_SPLIT_CACHE     EINVAL
_SC_ICACHE_SZ       EINVAL
_SC_DCACHE_SZ       EINVAL
_SC_ICACHE_LINESZ   EINVAL
_SC_DCACHE_LINESZ   EINVAL
_SC_ICACHE_BLKSZ    EINVAL
_SC_DCACHE_BLKSZ    EINVAL
_SC_DCACHE_TBLKSZ   EINVAL
_SC_ICACHE_ASSOC    EINVAL
_SC_DCACHE_ASSOC    EINVAL

RETURN VALUES

If name is an invalid value, sysconf() returns -1 and sets errno to indicate the error. If the variable corresponding to name is associated with functionality that is not supported by the system, sysconf() returns -1 without changing the value of errno.

Otherwise, sysconf() returns the current variable value on the system. The value returned will not be more restrictive than the corresponding value described to the application when it was compiled with the implementation's <limits.h>, <unistd.h> or <time.h>. The value will not change during the lifetime of the calling process.

ERRORS

The sysconf() function will fail if:

EINVAL
The value of the name argument is invalid.

ATTRIBUTES

See attributes.5 for descriptions of the following attributes:

+---------------+----------------------------+
|ATTRIBUTE TYPE |      ATTRIBUTE VALUE       |
+---------------+----------------------------+
|Architecture   | SPARC and x86              |
|MT-Level       | MT-Safe, Async-Signal-Safe |
+---------------+----------------------------+

SEE ALSO

fpathconf.2 seteuid.2 setrlimit.2 attributes.5 standards.5

NOTES

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

Multiplying sysconf(_SC_PHYS_PAGES) or sysconf(_SC_AVPHYS_PAGES) by sysconf(_SC_PAGESIZE) to determine memory amount in bytes can exceed the maximum values representable in a long or unsigned long.

_SC_PHYS_PAGES and _SC_AVPHYS_PAGES are specific to Solaris 2.3 and later releases.

The value of CLK_TCK may be variable and it should not be assumed that CLK_TCK is a compile-time constant.

Calling sysconf() with _SC_THREAD_KEYS_MAX or _SC_THREAD_THREADS_MAX returns -1, because no maximum limit can be determined. The system supports at least the minimum values defined by _POSIX_THREAD_KEYS_MAX and _POSIX_THREAD_THREADS_MAX and can support higher values depending upon system resources.

The _SC_THREAD_PRIO_INHERIT and _SC_THREAD_PRIO_PROTECT variables are currently not supported. A call to sysconf() with these variables as arguments returns -1.


index | Inhaltsverzeichniss | Kommentar

Created by unroff & hp-tools. © by Hans-Peter Bischof. All Rights Reserved (1997).

Last modified 07/October/97