Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
sysconf(3C)		 Standard C Library Functions		   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	deter-
       mine the	current	value of a configurable	system limit or	option	(vari-
       able).

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

	   Name			  Return Value		     Meaning
       _______________________________________________________________________
       _SC_2_C_BIND	       _POSIX2_C_BIND		  Supports the C lang-
							  uage binding option
       _SC_2_C_DEV	       _POSIX2_C_DEV		  Supports the C lang-
							  uage development
							  utilities option
       _SC_2_C_VERSION	       _POSIX2_C_VERSION	  Integer value
							  indicates 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 creation
							  of locales by	the
							  localedef utility
       _SC_2_SW_DEV	       _POSIX2_SW_DEV		  Supports Software
							  Development Utility
							  Option
       _SC_2_UPE	       _POSIX2_UPE		  Supports User
							  Portability
							  Utilities Option
       _SC_2_VERSION	       _POSIX2_VERSION		  Integer value
							  indicates version
							  of ISO POSIX-2
							  standard (C language
							  binding)
       _SC_AIO_LISTIO_MAX      AIO_LISTIO_MAX		  Max number of	I/O
							  operations in	a
							  single list I/O call
							  supported
       _SC_AIO_MAX	       AIO_MAX			  Max number of
							  outstanding
							  asynchronous I/O
							  operations supported
       _SC_AIO_PRIO_DELTA_MAX  AIO_PRIO_DELTA_MAX	  Max amount by	which
							  process can decrease
							  its asynchronous
							  I/O priority level
							  from its own
							  scheduling priority
       _SC_ARG_MAX	       ARG_MAX			  Max size of argv[]
							  plus envp[]
       _SC_ASYNCHRONOUS_IO     _POSIX_ASYNCHRONOUS_IO	  Supports
							  Asynchronous I/O
       _SC_ATEXIT_MAX	       ATEXIT_MAX		  Max number of
							  functions that can
							  be registered	with
							  atexit()
       _SC_AVPHYS_PAGES					  Number of physical
							  memory pages not
							  currently in use by
							  system
       _SC_BARRIERS	       _POSIX_BARRIERS		  Supports Barriers
							  option
       _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_CLOCK_SELECTION     _POSIX_CLOCK_SELECTION	  Supports Clock
							  Selection option
       _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_CPUID_MAX					  Max possible
							  processor ID
       _SC_DELAYTIMER_MAX      DELAYTIMER_MAX		  Max number of	timer
							  expiration overruns
       _SC_EXPR_NEST_MAX       EXPR_NEST_MAX		  Max number of
							  parentheses by expr
       _SC_FSYNC	       _POSIX_FSYNC		  Supports File
							  Synchronization
       _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_HOST_NAME_MAX       _POSIX_HOST_NAME_MAX	  Maximum length of a
							  host name (excluding
							  terminating null)
       _SC_IOV_MAX	       IOV_MAX			  Max number of	iovec
							  structures available
							  to one process for
							  use with readv()
							  and writev()
       _SC_JOB_CONTROL	       _POSIX_JOB_CONTROL	  Job control
							  supported?
       _SC_LINE_MAX	       LINE_MAX			  Max length of	input
							  line
       _SC_LOGIN_NAME_MAX      LOGNAME_MAX + 1		  Max length of	login
							  name
       _SC_LOGNAME_MAX	       LOGNAME_MAX
       _SC_MAPPED_FILES	       _POSIX_MAPPED_FILES	  Supports Memory
							  Mapped Files
       _SC_MAXPID					  Max pid value
       _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_MONOTONIC_CLOCK     _POSIX_MONOTONIC_CLOCK	  Supports Monotonic
							  Clock	option
       _SC_MQ_OPEN_MAX	       MQ_OPEN_MAX		  Max number of	open
							  message queues a
							  process can hold
       _SC_MQ_PRIO_MAX	       MQ_PRIO_MAX		  Max number of
							  message priorities
							  supported
       _SC_NGROUPS_MAX	       NGROUPS_MAX		  Max simultaneous
							  groups to which
							  one can belong
       _SC_NPROCESSORS_CONF				  Number of processors
							  configured
       _SC_NPROCESSORS_MAX				  Max number of
							  processors supported
							  by platform
       _SC_NPROCESSORS_ONLN				  Number of processors
							  online
       _SC_OPEN_MAX	       OPEN_MAX			  Max open files per
							  process
       _SC_PAGESIZE	       PAGESIZE			  System memory	page
							  size
       _SC_PAGE_SIZE	       PAGESIZE			  Same as _SC_PAGESIZE
       _SC_PASS_MAX	       PASS_MAX			  Max number of
							  significant bytes
							  in a password
       _SC_PHYS_PAGES					  Total	number of
							  pages	of physical
							  memory in system
       _SC_PRIORITIZED_IO      _POSIX_PRIORITIZED_IO	  Supports Prioritized
							  I/O
       _SC_PRIORITY_SCHEDULING _POSIX_PRIORITY_SCHEDULING Supports Process
							  Scheduling
       _SC_RAW_SOCKETS	       _POSIX_RAW_SOCKETS	  Supports Raw Sockets
							  option
       _SC_RE_DUP_MAX	       RE_DUP_MAX		  Max number of
							  repeated occurrences
							  of a regular
							  expression permitted
							  when using interval
							  notation \{m,n\}
       _SC_READER_WRITER_LOCKS _POSIX_READER_WRITER_LOCKS Supports IPV6	option
       _SC_REALTIME_SIGNALS    _POSIX_REALTIME_SIGNALS	  Supports Realtime
							  Signals
       _SC_REGEXP	       _POSIX_REGEXP		  Supports Regular
							  Expression Handling
							  option
       _SC_RTSIG_MAX	       RTSIG_MAX		  Max number of
							  realtime signals
							  reserved for
							  application use
       _SC_SAVED_IDS	       _POSIX_SAVED_IDS		  Saved	IDs
							  (seteuid())
							  supported?
       _SC_SEM_NSEMS_MAX       SEM_NSEMS_MAX		  Max number of	POSIX
							  semaphores a process
							  can have
       _SC_SEM_VALUE_MAX       SEM_VALUE_MAX		  Max value a POSIX
							  semaphore can	have
       _SC_SEMAPHORES	       _POSIX_SEMAPHORES	  Supports Semaphores
       _SC_SHARED_MEMORY_      _POSIX_SHARED_MEMORY_	  Supports Shared
	  OBJECTS		  OBJECTS		  Memory Objects
       _SC_SHELL	       _POSIX_SHELL		  Supports POSIX shell
       _SC_SIGQUEUE_MAX	       SIGQUEUE_MAX		  Max number of	queued
							  signals that a
							  process can send and
							  have pending at
							  receiver(s) at a
							  time
       _SC_SPAWN	       _POSIX_SPAWN		  Supports Spawn option
       _SC_SPIN_LOCKS	       _POSIX_SPIN_LOCKS	  Supports Spin	Locks
							  option
       _SC_STACK_PROT					  Default stack
							  protection
       _SC_STREAM_MAX	       STREAM_MAX		  Number of streams
							  one process can
							  have open at a time
       _SC_SYMLOOP_MAX	       _POSIX_SYMLOOP_MAX	  Max number of	symbolic
							  links	that can be
							  reliably traversed in
							  the resolution of a
							  pathname in the absence
							  of a loop
       _SC_SYNCHRONIZED_IO     _POSIX_SYNCHRONIZED_IO	  Supports
							  Synchronized I/O
       _SC_THREAD_ATTR_	       _POSIX_THREAD_ATTR_	  Supports Thread
	  STACKADDR		  STACKADDR		  Stack	Address
							  Attribute option
       _SC_THREAD_ATTR_	       _POSIX_THREAD_ATTR_	  Supports Thread
	  STACKSIZE		  STACKSIZE		  Stack	Size
							  Attribute option
       _SC_THREAD_DESTRUCTOR_  PTHREAD_DESTRUCTOR_	  Number attempts made
	  ITERATIONS		  ITERATIONS		  to destroy thread-
							  specific data	on
							  thread exit
       _SC_THREAD_KEYS_MAX     PTHREAD_KEYS_MAX		  Max number of	data
							  keys per process
       _SC_THREAD_PRIO_	       _POSIX_THREAD_PRIO_	  Supports Priority
	  INHERIT		  INHERIT		  Inheritance option
       _SC_THREAD_PRIO_	       _POSIX_THREAD_PRIO_	  Supports Priority
	  PROTECT		  PROTECT		  Protection option
       _SC_THREAD_PRIORITY_    _POSIX_THREAD_PRIORITY_	  Supports Thread
	  SCHEDULING		  SCHEDULING		  Execution
							  Scheduling option
       _SC_THREAD_PROCESS_     _POSIX_THREAD_PROCESS_	  Supports
	  SHARED		  SHARED		  Process-Shared
							  Synchronization
							  option
       _SC_THREAD_SAFE_	       _POSIX_THREAD_SAFE_	  Supports Thread-Safe
	  FUNCTIONS		  FUNCTIONS		  Functions option
       _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_THREADS	       _POSIX_THREADS		  Supports Threads
							  option
       _SC_TIMEOUTS	       _POSIX_TIMEOUTS		  Supports Timeouts
							  option
       _SC_TIMER_MAX	       TIMER_MAX		  Max number of	timer
							  per process
							  supported
       _SC_TIMERS	       _POSIX_TIMERS		  Supports Timers
       _SC_TTY_NAME_MAX	       TTYNAME_MAX		  Max length of	tty
							  device name
       _SC_TZNAME_MAX	       TZNAME_MAX		  Max number of	bytes
							  supported for	name
							  of a time zone
       _SC_V6_ILP32_OFF32      _POSIX_V6_ILP32_OFF32	  Supports  X/Open
							  ILP32	w/32-bit
							  offset build
							  environment
       _SC_V6_ILP32_OFFBIG     _POSIX_V6_ILP32_OFFBIG	  Supports  X/Open
							  ILP32	w/64-bit
							  offset build
							  environment
       _SC_V6_LP64_OFF64       _POSIX_V6_LP64_OFF64	  Supports  X/Open
							  LP64 w/64-bit
							  offset build
							  environment
       _SC_V6_LPBIG_OFFBIG     _POSIX_V6_LPBIG_OFFBIG	  Same as
							  _SC_V6_LP64_OFF64
       _SC_VERSION	       _POSIX_VERSION		  POSIX.1 version
							  supported
       _SC_XBS5_ILP32_OFF32    _XBS_ILP32_OFF32		  Indicates support
							  for X/Open ILP32
							  w/32-bit offset
							  build	environment
       _SC_XBS5_ILP32_OFFBIG   _XBS5_ILP32_OFFBIG	  Indicates support
							  for X/Open ILP32
							  w/64-bit offset
							  build	environment
       _SC_XBS5_LP64_OFF64     _XBS5_LP64_OFF64		  Indicates support of
							  X/Open LP64,
							  64-bit offset
							  build	environment
       _SC_XBS5_LPBIG_OFFBIG   _XBS5_LP64_OFF64		  Same as
							  _SC_XBS5_LP64_OFF64
       _SC_XOPEN_CRYPT	       _XOPEN_CRYPT		  Supports X/Open
							  Encryption Feature
							  Group
       _SC_XOPEN_ENH_I18N      _XOPEN_ENH_I18N		  Supports X/Open
							  Enhanced
							  Internationalization
							  Feature Group
       _SC_XOPEN_LEGACY	       _XOPEN_LEGACY		  Supports X/Open
							  Legacy Feature Group
       _SC_XOPEN_REALTIME      _XOPEN_REALTIME		  Supports X/Open
							  POSIX	Realtime
							  Feature Group
       _SC_XOPEN_REALTIME_     _XOPEN_REALTIME_THREADS	  Supports X/Open
	    THREADS					  POSIX	Reatime
							  Threads Feature
							  Group
       _SC_XOPEN_SHM	       _XOPEN_SHM		  Supports X/Open
							  Shared Memory
							  Feature Group
       _SC_XOPEN_STREAMS       _POSIX_XOPEN_STREAMS	  Supports XSI Streams
							  option group
       _SC_XOPEN_UNIX	       _XOPEN_UNIX		  Supports X/Open CAE
							  Specification,
							  August 1994, System
							  Interfaces and
							  Headers, Issue 4,
							  Version 2
       _SC_XOPEN_VERSION       _XOPEN_VERSION		  Integer value
							  indicates version of
							  X/Open Portability
							  Guide	to which
							  implementation
							  conforms
       _SC_XOPEN_XCU_VERSION   _XOPEN_XCU_VERSION	  Integer value
							  indicates version of
							  XCU specification to
							  which	implementation
							  conforms

       The following options are not supported and return -1:

       _SC_2_PBS		     _POSIX2_PBS
       _SC_2_PBS_ACCOUNTING	     _POSIX2_PBS_ACCOUNTING
       _SC_2_PBS_CHECKPOINT	     _POSIX2_PBS_CHECKPOINT
       _SC_2_PBS_LOCATE		     _POSIX2_PBS_LOCATE
       _SC_2_PBS_MESSAGE	     _POSIX2_PBS_MESSAGE
       _SC_2_PBS_TRACK		     _POSIX2_PBS_TRACK
       _SC_ADVISORY_INFO	     _POSIX_ADVISORY_INFO
       _SC_CPUTIME		     _POSIX_CPUTIME
       _SC_SPORADIC_SERVER	     _POSIX_SPORADIC_SERVER
       _SC_SS_REPL_MAX		     _POSIX_SS_REPL_MAX
       _SC_THREAD_CPUTIME	     _POSIX_THREAD_CPUTIME
       _SC_THREAD_SPORADIC_SERVER    _POSIX_THREAD_SPORADIC_SERVER
       _SC_TRACE		     _POSIX_TRACE
       _SC_TRACE_EVENT_FILTER	     _POSIX_TRACE_EVENT_FILTER
       _SC_TRACE_EVENT_NAME_MAX	     _POSIX_TRACE_EVENT_NAME_MAX
       _SC_TRACE_INHERIT	     _POSIX_TRACE_INHERIT
       _SC_TRACE_LOG		     _POSIX_TRACE_LOG
       _SC_TRACE_NAME_MAX	     _POSIX_TRACE_NAME_MAX
       _SC_TRACE_SYS_MAX	     _POSIX_TRACE_SYS_MAX
       _SC_TRACE_USER_EVENT_MAX	     _POSIX_TRACE_USER_EVENT_MAX
       _SC_TYPED_MEMORY_OBJECTS	     _POSIX_TYPED_MEMORY_OBJECTS

RETURN VALUES
       Upon  successful	 completion,  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>.
       With  only  a  few  obvious  exceptions	such  as  _SC_AVPHYS_PAGES and
       _SC_NPROCESSORS_ONLN, the value will not	change during the lifetime  of
       the calling process.

       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.

       Calling sysconf() with the following returns -1 without setting	errno,
       because	no  maximum  limit  can	 be determined.	The system supports at
       least the minimum values	and can	support	higher values  depending  upon
       system resources.

       Variable				   Minimum supported value
       _SC_AIO_MAX			  _POSIX_AIO_MAX
       _SC_ATEXIT_MAX			  32
       _SC_THREAD_THREADS_MAX		  _POSIX_THREAD_THREADS_MAX
       _SC_THREAD_KEYS_MAX		  _POSIX_THREAD_KEYS_MAX
       _SC_THREAD_DESTRUCTOR_ITERATIONS	  _POSIX_THREAD_DESTRUCTOR_ITERATIONS

       The following SPARC and x86 platform variables return EINVAL:

       _SC_COHER_BLKSZ	      _SC_DCACHE_ASSOC
       _SC_DCACHE_BLKSZ	      _SC_DCACHE_LINESZ
       _SC_DCACHE_SZ	      _SC_DCACHE_TBLKSZ
       _SC_ICACHE_ASSOC	      _SC_ICACHE_BLKSZ
       _SC_ICACHE_LINESZ      _SC_ICACHE_SZ
       _SC_SPLIT_CACHE

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		   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Standard			   |
       +-----------------------------+-----------------------------+
       |MT-Level		     |MT-Safe, Async-Signal-Safe   |
       +-----------------------------+-----------------------------+

SEE ALSO
       pooladm(1M), zoneadm(1M), fpathconf(2), seteuid(2), setrlimit(2), conf-
       str(3C),	attributes(5), standards(5)

NOTES
       A call to setrlimit() can 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 32-bit signed or  unsigned	 inte-
       ger.

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

       If the caller is	in a non-global	zone and the pools facility is active,
       sysconf(_SC_NPROCESSORS_CONF)  and sysconf(_SC_NPROCESSORS_ONLN)	return
       the number of processors	in the processor set of	the pool to which  the
       zone is bound.

SunOS 5.10			  28 Jun 2004			   sysconf(3C)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO | NOTES

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=sysconf&sektion=3c&manpath=SunOS+5.10>

home | help