CONFSTR(3C)             Standard C Library Functions             CONFSTR(3C)
NAME
       confstr - get configurable variables
SYNOPSIS
       #include <unistd.h>       
size_t confstr(
int name, 
char *buf, 
size_t len);
DESCRIPTION
       The 
confstr() function provides a method for applications to get
       configuration-defined string values.  Its use and purpose are similar
       to the 
sysconf(3C) function, but it is used where string values
       rather than numeric values are returned.
       The 
name argument represents the system variable to be queried.
       If 
len is not 
0, and if 
name has a configuration-defined value,       
confstr() copies that value into the  
len-byte buffer pointed to by       
buf. If the string to be returned is longer than 
len bytes, including
       the terminating null, then 
confstr() truncates the string to  
len-1
       bytes and null-terminates the result. The application can detect that
       the string was truncated by comparing the value returned by 
confstr()       with 
len.
       If 
len is 
0, 
confstr() still returns the integer value as defined
       below, but does not return the string.
       The 
confstr() function supports the following values for 
name,
       defined in 
<unistd.h>, for both SPARC and x86:       
_CS_LFS64_CFLAGS           If 
_LFS64_LARGEFILE is defined in 
<unistd.h>, this value is the
           set of initial options to be given to the 
cc and 
c89 utilities to
           build an application using the Large File Summit transitional
           compilation environment (see 
lfcompile64(7)).       
_CS_LFS64_LDFLAGS           If 
_LFS64_LARGEFILE is defined in 
<unistd.h>, this value is the
           set of final options to be given to the 
cc and 
c89 utilities to
           build an application using the Large File Summit transitional
           compilation environment (see 
lfcompile64(7)).       
_CS_LFS64_LIBS           If 
_LFS64_LARGEFILE is defined in 
<unistd.h>, this value is the
           set of libraries to be given to the 
cc and 
c89 utilities to build
           an application using the Large File Summit transitional
           compilation environment (see 
lfcompile64(7)).       
_CS_LFS64_LINTFLAGS           If 
_LFS64_LARGEFILE is defined in 
<unistd.h>, this value is the
           set of options to be given to the 
lint utility to check
           application source using the Large File Summit transitional
           compilation environment (see 
lfcompile64(7)).       
_CS_LFS_CFLAGS           If 
_LFS_LARGEFILE is defined in 
<unistd.h>, this value is the set
           of initial options to be given to the 
cc and 
c89 utilities to
           build an application using the Large File Summit large file
           compilation environment for 32-bit applications (see           
lfcompile(7)).       
_CS_LFS_LDFLAGS           If 
_LFS_LARGEFILE is defined in 
<unistd.h>, this value is the set
           of final options to be given to the 
cc and 
c89 utilities to build
           an application using the Large File Summit large file compilation
           environment for 32-bit applications (see 
lfcompile(7)).       
_CS_LFS_LIBS           If 
_LFS_LARGEFILE is defined in 
<unistd.h>, this value is the set
           of libraries to be given to the 
cc and 
c89 utilities to build an
           application using the Large File Summit large file compilation
           environment for 32-bit applications (see 
lfcompile(7)).       
_CS_LFS_LINTFLAGS           If 
_LFS_LARGEFILE is defined in 
<unistd.h>, this value is the set
           of options to be given to the 
lint utility to check application
           source using the Large File Summit large file compilation
           environment for 32-bit applications (see 
lfcompile(7)).       
_CS_PATH           If the ISO POSIX.2 standard is supported, this is the value for
           the 
PATH environment variable that finds all standard utilities.
           Otherwise the meaning of this value is unspecified.       
_CS_POSIX_V6_ILP32_OFF32_CFLAGS           If 
sysconf(
_SC_V6_ILP32_OFF32) returns -1, the meaning of this
           value is unspecified.  Otherwise, this value is the set of
           initial options to be given to the 
c99 utility to build an
           application using a programming model with 32-bit 
int, 
long,           
pointer, and 
off_t types.       
_CS_POSIX_V6_ILP32_OFF32_LDFLAGS           If 
sysconf(
_SC_V6_ILP32_OFF32) returns -1, the meaning of this
           value is unspecified. Otherwise, this value is the set of final
           options to be given to the 
c99 utility to build an application
           using a programming model with 32-bit 
int, 
long, 
pointer, and           
off_t types.       
_CS_POSIX_V6_ILP32_OFF32_LIBS           If 
sysconf(
_SC_V6_ILP32_OFF32) returns -1, the meaning of this
           value is unspecified. Otherwise, this value is the set of
           libraries to be given to the 
c99 utility to build an application
           using a programming model with 32-bit 
int, 
long, 
pointer, and           
off_t types.       
_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS            If 
sysconf(
_SC_V6_ILP32_OFFBIG) returns -1, the meaning of this
           value is unspecified. Otherwise, this value is the set of initial
           options to be given to the 
c99 utility to build an application
           using a programming model with 32-bit 
int, 
long, and 
pointer           types, and an 
off_t type using at least 64 bits.       
_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS           If 
sysconf(
_SC_V6_ILP32_OFFBIG) returns -1, the meaning of this
           value is unspecified. Otherwise, this value is the set of final
           options to be given to the 
c99 utility to build an application
           using a programming model with 32-bit 
int, 
long, and 
pointer           types, and an 
off_t type using at least 64 bits.       
_CS_POSIX_V6_ILP32_OFFBIG_LIBS           If 
sysconf(
_SC_V6_ILP32_OFFBIG) returns -1, the meaning of this
           value is unspecified. Otherwise, this value is the set of
           libraries to be given to the 
c99 utility to build an application
           using a programming model with 32-bit 
int, 
long, and 
pointer           types, and an 
off_t type using at least 64 bits.       
_CS_POSIX_V6_LP64_OFF64_CFLAGS           If 
sysconf(
_SC_V6_LP64_OFF64) returns -1, the meaning of this
           value is unspecified. Otherwise, this value is the set of initial
           options to be given to the 
c99 utility to build an application
           using a programming model with 64-bit 
int, 
long, 
pointer, and           
off_t types.       
_CS_POSIX_V6_LP64_OFF64_LDFLAGS           If 
sysconf(
_SC_V6_LP64_OFF64) returns -1, the meaning of this
           value is unspecified. Otherwise, this value is the set of final
           options to be given to the 
c99 utility to build an application
           using a programming model with 64-bit 
int, 
long, 
pointer, and           
off_t types.       
_CS_POSIX_V6_LP64_OFF64_LIBS           If 
sysconf(
_SC_V6_LP64_OFF64) returns -1, the meaning of this
           value is unspecified. Otherwise, this value is the set of
           libraries to be given to the 
c99 utility to build an application
           using a programming model with 64-bit 
int, 
long, 
pointer, and           
off_t types.       
_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS           If 
sysconf(
_SC_V6_LPBIG_OFFBIG) returns -1, the meaning of this
           value is unspecified. Otherwise, this value is the set of initial
           options to be given to the 
c99 utility to build an application
           using a programming model with an 
int type using at least 32 bits
           and 
long, 
pointer, and 
off_t types using at least 64 bits.       
_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS           If 
sysconf(
_SC_V6_LPBIG_OFFBIG) returns -1, the meaning of this
           value is unspecified. Otherwise, this value is the set of final
           options to be given to the 
c99 utility to build an application
           using a programming model with an 
int type using at least 32 bits
           and 
long, 
pointer, and 
off_t types using at least 64 bits.       
_CS_POSIX_V6_LPBIG_OFFBIG_LIBS           If 
sysconf(
_SC_V6_LPBIG_OFFBIG) returns -1, the meaning of this
           value is unspecified. Otherwise, this value is the set of
           libraries to be given to the 
c99 utility to build an application
           using a programming model with an 
int type using at least 32 bits
           and 
long, 
pointer, and 
off_t types using at least 64 bits.       
_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS           This value is a <newline>-separated list of names of programming
           environments supported  by the implementation in which the widths
           of the 
blksize_t, 
cc_t, 
mode_t, 
nfds_t, 
pid_t, 
ptrdiff_t, 
size_t,           
speed_t, 
ssize_t, 
suseconds_t, 
tcflag_t, 
useconds_t, 
wchar_t, and           
wint_t types are no greater than the width of type 
long.       
_CS_XBS5_ILP32_OFF32_CFLAGS           If 
sysconf(_SC_XBS5_ILP32_OFF32) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of
           initial options to be given to the 
cc and 
c89 utilities to build
           an application using a programming model with 32-bit 
int, 
long,           
pointer, and 
off_t types.       
_CS_XBS5_ILP32_OFF32_LDFLAGS           If 
sysconf(_SC_XBS5_ILP32_OFF32) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of final
           options to be given to the 
cc and 
c89 utilities to build an
           application using a programming model with 32-bit 
int, 
long,           
pointer, and 
off_t types.       
_CS_XBS5_ILP32_OFF32_LIBS           If 
sysconf(_SC_XBS5_ILP32_OFF32) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of
           libraries to be given to the 
cc and 
c89 utilities to build an
           application using a programming model with 32-bit 
int, 
long,           
pointer, and 
off_t types.       
_CS_XBS5_ILP32_OFF32_LINTFLAGS           If 
sysconf(_SC_XBS5_ILP32_OFF32) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of
           options to be given to the 
lint utility to check application
           source using a programming model with 32-bit 
int, 
long, 
pointer,
           and 
off_t types.       
_CS_XBS5_ILP32_OFFBIG_CFLAGS           If 
sysconf(_SC_XBS5_ILP32_OFFBIG) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of
           initial options to be given to the 
cc and 
c89 utilities to build
           an application using a programming model with 32-bit 
int, 
long,
           and 
pointer types, and an 
off_t type using at least 64 bits.       
_CS_XBS5_ILP32_OFFBIG_LDFLAGS           If 
sysconf(SC_XBS5_ILP32_OFFBIG) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of final
           options to be given to the 
cc and 
c89 utilities to build an
           application using a programming model with 32-bit 
int, 
long, and           
pointer types, and an 
off_t type using at least 64 bits.       
_CS_XBS5_ILP32_OFFBIG_LIBS           If 
sysconf(_SC_XBS5_ILP32_OFFBIG) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of
           libraries to be given to the 
cc and 
c89 utilities to build an
           application using a programming model with 32-bit 
int, 
long, and           
pointer types, and an 
off_t type using at least 64 bits.       
_CS_XBS5_ILP32_OFFBIG_LINTFLAGS           If 
sysconf(_SC_XBS5_ILP32_OFFBIG) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of
           options to be given to the 
lint utility to check an application
           using a programming model with 32-bit 
int, 
long, and 
pointer           types, and an 
off_t type using at least 64 bits.
       The 
confstr() function supports the following values for 
name,
       defined in 
<unistd.h>, for SPARC only:       
_CS_XBS5_LP64_OFF64_CFLAGS           If 
sysconf(_SC_XBS5_LP64_OFF64) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of
           initial options to be given to the 
cc and 
c89 utilities to build
           an application using a programming model with 64-bit 
int, 
long,           
pointer, and 
off_t types.       
_CS_XBS5_LP64_OFF64_LDFLAGS           If 
sysconf(_SC_XBS5_LP64_OFF64) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of final
           options to be given to the 
cc and 
c89 utilities to build an
           application using a programming model with 64-bit 
int, 
long,           
pointer, and 
off_t types.       
_CS_XBS5_LP64_OFF64_LIBS           If 
sysconf(_SC_XBS5_LP64_OFF64) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of
           libraries to be given to the 
cc and 
c89 utilities to build an
           application using a programming model with 64-bit 
int, 
long,           
pointer, and 
off_t types.       
_CS_XBS5_LP64_OFF64_LINTFLAGS           If 
sysconf(_SC_XBS5_LP64_OFF64) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of
           options to be given to the 
lint utility to check application
           source using a programming model with 64-bit 
int, 
long, 
pointer,
           and 
off_t types.       
_CS_XBS5_LPBIG_OFFBIG_CFLAGS           If 
sysconf(_SC_XBS5_LPBIG_OFFBIG) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of
           initial options to be given to the 
cc and 
c89 utilities to build
           an application using a programming model with an 
int type using
           at least 32 bits and 
long, 
pointer, and 
off_t types using at
           least 64 bits.       
_CS_XBS5_LPBIG_OFFBIG_LDFLAGS           If 
sysconf(_SC_XBS5_LPBIG_OFFBIG) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of final
           options to be given to the 
cc and 
c89 utilities to build an
           application using a programming model with an 
int type using at
           least 32 bits and 
long, 
pointer, and 
off_t types using at least
           64 bits.       
_CS_XBS5_LPBIG_OFFBIG_LIBS           If 
sysconf(_SC_XBS5_LPBIG_OFFBIG) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of
           libraries to be given to the 
cc and 
c89 utilities to build an
           application using a programming model with an 
int type using at
           least 32 bits and 
long, 
pointer, and 
off_t types using at least
           64 bits.       
_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS           If 
sysconf(_SC_XBS5_LPBIG_OFFBIG) returns -1 the meaning of this
           value is unspecified.  Otherwise, this value is the set of
           options to be given to the 
lint utility to check application
           source using a programming model with an 
int type using at least
           32 bits and 
long, 
pointer, and 
off_t types using at least 64
           bits.
RETURN VALUES
       If 
name has a configuration-defined value, the 
confstr() function
       returns the size of buffer that would be needed to hold the entire
       configuration-defined value.  If this return value is greater than       
len, the string returned in 
buf is truncated.
       If 
name is invalid, 
confstr() returns 
0 and sets  
errno to indicate
       the error.
       If 
name does not have a configuration-defined value, 
confstr()       returns  
0 and leaves 
errno unchanged.
ERRORS
       The 
confstr() function will fail if:       
EINVAL                 The value of the 
name argument is invalid.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Standard        |
       +--------------------+-----------------+
       |MT-Level            | Mt-Safe         |
       +--------------------+-----------------+
SEE ALSO
       pathconf(2), 
sysconf(3C), 
attributes(7), 
lfcompile(7),       
lfcompile64(7), 
standards(7)                              December 15, 2003                  CONFSTR(3C)