NAME

     sysconf - Get configuration information at runtime


SYNOPSIS

     #include <unistd.h>

     long sysconf(int name));


DESCRIPTION

     sysconf() provides a way for the  application  to  determine
     values for system limits or options at runtime.

     The equivalent macros defined in <unistd.h>  can  only  give
     conservative  values; if an application wants to take advan-
     tage of values which may change, a call to sysconf() can  be
     made, which may yield more liberal results.

     For getting information about a particular file, see  fpath-
     conf() or pathconf().

     The following values are supported  for  name.   First,  the
     POSIX.1 compatible values:

     _SC_ARG_MAX
          The maximum length of the arguments to the exec()  fam-
          ily of functions; the corresponding macro is ARG_MAX.

     _SC_CHILD_MAX
          The number of simultaneous processes per user  id,  the
          corresponding macro is _POSIX_CHILD_MAX.

     _SC_CLK_TCK
          The number of clock ticks per second; the corresponding
          macro is CLK_TCK.

     _SC_STREAM_MAX
          The maximum number of streams that a process  can  have
          open  at  any  time.   The corresponding POSIX macro is
          STREAM_MAX,  the  corresponding  standard  C  macro  is
          FOPEN_MAX.

     _SC_TZNAME_MAX
          The maximum number of bytes in  a  timezone  name,  the
          corresponding macro is TZNAME_MAX.

     _SC_OPEN_MAX
          The maximum number of files that  a  process  can  have
          open   at   any   time,   the  corresponding  macro  is
          _POSIX_OPEN_MAX.

     _SC_JOB_CONTROL
          This indicates whether POSIX -  style  job  control  is
          supported,      the      corresponding     macro     is
          _POSIX_JOB_CONTROL.

     _SC_SAVED_IDS
          This indicates whether a process has a saved  set-user-
          ID and a saved set-group-ID; the corresponding macro is
          _POSIX_SAVED_IDS.

     _SC_VERSION
          indicates the year and month the POSIX.1  standard  was
          approved  in the format YYYYMML;the value 199009L indi-
          cates the most recent revision, 1990.

     Next, the POSIX.2 values:

     _SC_BC_BASE_MAX
          indicates the maximum obase value accepted by the bc(1)
          utility; the corresponding macro is BC_BASE_MAX.

     _SC_BC_DIM_MAX
          indicates the maximum value of elements permitted in an
          array by bc(1); the corresponding macro is BC_DIM_MAX.

     _SC_BC_SCALE_MAX
          indicates the maximum scale value allowed by bc(1); the
          corresponding macro is BC_SCALE_MAX.

     _SC_BC_STRING_MAX
          indicates the maximum length of a  string  accepted  by
          bc(1); the corresponding macro is BC_STRING_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 definition file; the corresponding macro  is
          COLL_WEIGHTS_MAX.

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

     _SC_LINE_MAX
          The maximum length of a utility's  input  line  length,
          either  from  standard  input  or  from  a  file.  This
          includes  length   for   a   trailing   newline.    The
          corresponding macro is LINE_MAX.

     _SC_RE_DUP_MAX
          The maximum number of repeated occurrences of a regular
          expression  when the interval notation \{m,n\} is used.
          The value of the corresponding macro is RE_DUP_MAX.

     _SC_2_VERSION
          indicates the version of the POSIX.2  standard  in  the
          format   of   YYYYMML.    The  corresponding  macro  is
          POSIX2_VERSION.

     _SC_2_DEV
          indicates whether the POSIX.2  C  language  development
          facilities  are  supported.  The corresponding macro is
          POSIX2_C_DEV.

     _SC_2_FORT_DEV
          indicates whether the POSIX.2 FORTRAN development util-
          ities   are  supported.   The  corresponding  macro  is
          POSIX2_FORT_RUN.

     _SC_2_FORT_RUN
          indicates whether the POSIX.2 FORTRAN runtime utilities
          are    supported.     The    corresponding   macro   is
          POSIX2_FORT_RUN.

     _SC_2_LOCALEDEF
          indicates whether the POSIX.2 creation of  locates  via
          localedef(1)  is supported.  The corresponding macro is
          _POSIX2_LOCALEDEF.

     _SC_2_SW_DEV
          indicates  whether  the  POSIX.2  software  development
          utilities option is supported.  The corresponding macro
          is POSIX2_SW_DEV.


RETURN VALUE

     The value returned is the value of the system resource, 1 if
     a  queried  option  is  available,  0 if it is not, or -1 on
     error.  The variable errno is not set.


CONFORMING TO

     POSIX.1, proposed POSIX.2


BUGS

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

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

     POSIX.2 is not yet an approved standard; the information  in
     this manpage is subject to change.


SEE ALSO

     bc(1), expr(1), locale(1),