|
|
#include <unistd.h>
long sysconf(int name);
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
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.
+---------------+----------------------------+ |ATTRIBUTE TYPE | ATTRIBUTE VALUE | +---------------+----------------------------+ |Architecture | SPARC and x86 | |MT-Level | MT-Safe, Async-Signal-Safe | +---------------+----------------------------+
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.
|
|
Created by unroff & hp-tools. © by Hans-Peter Bischof. All Rights Reserved (1997).
Last modified 07/October/97