Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fpathconf(2)

seteuid(2)

setrlimit(2)

sysconf(3C)

NAME

sysconf − get configurable system variables

SYNOPSIS

#include <unistd.h>

long  sysconf(int name);

MT-LEVEL

MT-Safe, Async-Signal-Safe

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. 

Name Return Value Meaning
_SC_ARG_MAX ARG_MAX Max size of argv[] plus envp[].
_SC_CHILD_MAX CHILD_MAX Max processes allowed to a UID.
_SC_CLK_TCK CLK_TCK Ticks per second (clock_t).
_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
_SC_PAGESIZE PAGESIZE System memory page size.
_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_XOPEN_VERSION _XOPEN_VERSION
_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
/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.

RETURN VALUES

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. 

SEE ALSO

fpathconf(2), seteuid(2), setrlimit(2)

NOTES

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

Multiplying _SC_PHYS_PAGES or _SC_AVPHYS_PAGES by _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. 

_SC_THREAD_PRIO_INHERIT and _SC_THREAD_PRIO_PROTECT are currently not supported, so sysconf() with these arguments returns −1. 

SunOS 5.5/SPARC  —  Last change: 20 Sep 1995

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026