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

FreeBSD Manual Pages

  
 
  

home | help
SYSCONF(3)		   Linux Programmer's Manual		    SYSCONF(3)

NAME
       sysconf - get configuration information at run time

SYNOPSIS
       #include	<unistd.h>

       long sysconf(int	name);

DESCRIPTION
       POSIX allows an application to test at compile or run time whether cer-
       tain options are	supported, or what the value  is  of  certain  config-
       urable constants	or limits.

       At  compile time	this is	done by	including _unistd.h_ and/or _limits.h_
       and testing the value of	certain	macros.

       At run time, one	can ask	for numerical values using the	present	 func-
       tion  sysconf().	  One  can ask for numerical values that may depend on
       the filesystem a	file is	in using  the  calls  fpathconf(3)  and	 path-
       conf(3).	 One can ask for string	values using confstr(3).

       The  values obtained from these functions are system configuration con-
       stants.	They do	not change during the lifetime of a process.

       For options, typically, there is	a constant _POSIX_FOO that may be  de-
       fined  in  _unistd.h_.  If it is	undefined, one should ask at run time.
       If it is	defined	to -1, then the	option is not supported.  If it	is de-
       fined  to  0, then relevant functions and headers exist,	but one	has to
       ask at run time what degree of support is available.  If	it is  defined
       to  a  value other than -1 or 0,	then the option	is supported.  Usually
       the value (such as 200112L) indicates the year and month	of  the	 POSIX
       revision	 describing  the  option.   Glibc uses the value 1 to indicate
       support as long as the POSIX revision has not been published yet.   The
       sysconf()  argument  will  be  _SC_FOO.	 For  a	 list  of options, see
       posixoptions(7).

       For variables or	limits,	typically, there is a constant _FOO, maybe de-
       fined  in  _limits.h_, or _POSIX_FOO, maybe defined in _unistd.h_.  The
       constant	will not be defined if the limit is unspecified.  If the  con-
       stant  is  defined,  it	gives  a guaranteed value, and a greater value
       might actually be supported.  If	an application wants to	take advantage
       of  values which	may change between systems, a call to sysconf()	can be
       made.  The sysconf() argument will be _SC_FOO.

   POSIX.1 variables
       We give the name	of the variable, the name of  the  sysconf()  argument
       used to inquire about its value,	and a short description.

       First, the POSIX.1 compatible values.

       ARG_MAX - _SC_ARG_MAX
	      The  maximum  length  of	the arguments to the exec(3) family of
	      functions.  Must not be less than	_POSIX_ARG_MAX (4096).

       CHILD_MAX - _SC_CHILD_MAX
	      The maximum number of simultaneous processes per user ID.	  Must
	      not be less than _POSIX_CHILD_MAX	(25).

       HOST_NAME_MAX - _SC_HOST_NAME_MAX
	      Maximum length of	a hostname, not	including the terminating null
	      byte, as returned	by gethostname(2).   Must  not	be  less  than
	      _POSIX_HOST_NAME_MAX (255).

       LOGIN_NAME_MAX -	_SC_LOGIN_NAME_MAX
	      Maximum  length  of a login name,	including the terminating null
	      byte.  Must not be less than _POSIX_LOGIN_NAME_MAX (9).

       clock ticks - _SC_CLK_TCK
	      The number of clock ticks	per second.  The  corresponding	 vari-
	      able  is obsolete.  It was of course called CLK_TCK.  (Note: the
	      macro CLOCKS_PER_SEC does	not give information:  it  must	 equal
	      1000000.)

       OPEN_MAX	- _SC_OPEN_MAX
	      The  maximum number of files that	a process can have open	at any
	      time.  Must not be less than _POSIX_OPEN_MAX (20).

       PAGESIZE	- _SC_PAGESIZE
	      Size of a	page in	bytes.	Must not be less than 1.   (Some  sys-
	      tems use PAGE_SIZE instead.)

       RE_DUP_MAX - _SC_RE_DUP_MAX
	      The  number  of  repeated	 occurrences  of  a  BRE  permitted by
	      regexec(3)   and	 regcomp(3).	Must   not   be	  less	  than
	      _POSIX2_RE_DUP_MAX (255).

       STREAM_MAX - _SC_STREAM_MAX
	      The  maximum  number  of streams that a process can have open at
	      any time.	 If defined, it	has the	same value as the  standard  C
	      macro FOPEN_MAX.	Must not be less than _POSIX_STREAM_MAX	(8).

       SYMLOOP_MAX - _SC_SYMLOOP_MAX
	      The  maximum  number of symbolic links seen in a pathname	before
	      resolution returns ELOOP.	 Must not  be  less  than  _POSIX_SYM-
	      LOOP_MAX (8).

       TTY_NAME_MAX - _SC_TTY_NAME_MAX
	      The maximum length of terminal device name, including the	termi-
	      nating null byte.	 Must not  be  less  than  _POSIX_TTY_NAME_MAX
	      (9).

       TZNAME_MAX - _SC_TZNAME_MAX
	      The  maximum  number  of	bytes in a timezone name.  Must	not be
	      less than	_POSIX_TZNAME_MAX (6).

       _POSIX_VERSION -	_SC_VERSION
	      indicates	the year and month the POSIX.1 standard	 was  approved
	      in  the  format  YYYYMML;	 the value 199009L indicates the Sept.
	      1990 revision.

   POSIX.2 variables
       Next, the POSIX.2 values, giving	limits for utilities.

       BC_BASE_MAX - _SC_BC_BASE_MAX
	      indicates	the maximum obase value	accepted by the	bc(1) utility.

       BC_DIM_MAX - _SC_BC_DIM_MAX
	      indicates	the maximum value of elements permitted	in an array by
	      bc(1).

       BC_SCALE_MAX - _SC_BC_SCALE_MAX
	      indicates	the maximum scale value	allowed	by bc(1).

       BC_STRING_MAX - _SC_BC_STRING_MAX
	      indicates	the maximum length of a	string accepted	by bc(1).

       COLL_WEIGHTS_MAX	- _SC_COLL_WEIGHTS_MAX
	      indicates	the maximum numbers of weights that can	be assigned to
	      an entry of the LC_COLLATE order keyword in the  locale  defini-
	      tion file,

       EXPR_NEST_MAX - _SC_EXPR_NEST_MAX
	      is  the maximum number of	expressions which can be nested	within
	      parentheses by expr(1).

       LINE_MAX	- _SC_LINE_MAX
	      The maximum length of a utility's	input line, either from	 stan-
	      dard  input  or from a file.  This includes space	for a trailing
	      newline.

       RE_DUP_MAX - _SC_RE_DUP_MAX
	      The maximum number of repeated occurrences of a regular  expres-
	      sion when	the interval notation \{m,n\} is used.

       POSIX2_VERSION -	_SC_2_VERSION
	      indicates	 the  version of the POSIX.2 standard in the format of
	      YYYYMML.

       POSIX2_C_DEV - _SC_2_C_DEV
	      indicates	whether	the POSIX.2 C language development  facilities
	      are supported.

       POSIX2_FORT_DEV - _SC_2_FORT_DEV
	      indicates	 whether the POSIX.2 FORTRAN development utilities are
	      supported.

       POSIX2_FORT_RUN - _SC_2_FORT_RUN
	      indicates	whether	the POSIX.2  FORTRAN  run-time	utilities  are
	      supported.

       _POSIX2_LOCALEDEF - _SC_2_LOCALEDEF
	      indicates	 whether  the  POSIX.2	creation  of  locates  via lo-
	      caledef(1) is supported.

       POSIX2_SW_DEV - _SC_2_SW_DEV
	      indicates	whether	the POSIX.2 software development utilities op-
	      tion is supported.

       These values also exist,	but may	not be standard.

	- _SC_PHYS_PAGES
	      The  number of pages of physical memory.	Note that it is	possi-
	      ble for the product of this value	and the	value of  _SC_PAGESIZE
	      to overflow.

	- _SC_AVPHYS_PAGES
	      The number of currently available	pages of physical memory.

	- _SC_NPROCESSORS_CONF
	      The number of processors configured.

	- _SC_NPROCESSORS_ONLN
	      The number of processors currently online	(available).

RETURN VALUE
       If name is invalid, -1 is returned, and errno is	set to EINVAL.	Other-
       wise, the value returned	is the value of	the system resource and	 errno
       is  not	changed.  In the case of options, a positive value is returned
       if a queried option is available, and -1	if it is not.  In the case  of
       limits, -1 means	that there is no definite limit.

CONFORMING TO
       POSIX.1-2001.

BUGS
       It  is difficult	to use ARG_MAX because it is not specified how much of
       the argument space for exec(3) is consumed by  the  user's  environment
       variables.

       Some  returned values may be huge; they are not suitable	for allocating
       memory.

SEE ALSO
       bc(1), expr(1), getconf(1), locale(1), confstr(3), fpathconf(3),	 path-
       conf(3),	posixoptions(7)

COLOPHON
       This  page  is  part of release 3.74 of the Linux man-pages project.  A
       description of the project, information about reporting bugs,  and  the
       latest	  version     of     this    page,    can    be	   found    at
       http://www.kernel.org/doc/man-pages/.

GNU				  2014-03-20			    SYSCONF(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | CONFORMING TO | BUGS | SEE ALSO | COLOPHON

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

home | help