This function reads the value of a string-valued system parameter,
storing the string into len bytes of memory space starting at
buf. The parameter argument should be one of the
`_CS_' symbols listed below.
The normal return value from confstr is the length of the string
value that you asked for. If you supply a null pointer for buf,
then confstr does not try to store the string; it just returns
its length. A value of 0 indicates an error.
If the string you asked for is too long for the buffer (that is, longer
than len - 1), then confstr stores just that much
(leaving room for the terminating null character). You can tell that
this has happened because confstr returns a value greater than or
equal to len.
The following errno error conditions are defined for this function:
EINVAL
The value of the parameter is invalid.
Currently there is just one parameter you can read with confstr:
_CS_PATH
This parameter's value is the recommended default path for searching for
executable files. This is the path that a user has by default just
after logging in.
_CS_LFS_CFLAGS
The returned string specifies which additional flags must be given to
the C compiler if a source is compiled using the
_LARGEFILE_SOURCE feature select macro; see Feature Test Macros.
_CS_LFS_LDFLAGS
The returned string specifies which additional flags must be given to
the linker if a source is compiled using the
_LARGEFILE_SOURCE feature select macro; see Feature Test Macros.
_CS_LFS_LIBS
The returned string specifies which additional libraries must be linked
to the application if a source is compiled using the
_LARGEFILE_SOURCE feature select macro; see Feature Test Macros.
_CS_LFS_LINTFLAGS
The returned string specifies which additional flags must be given to
the lint tool if a source is compiled using the
_LARGEFILE_SOURCE feature select macro; see Feature Test Macros.
_CS_LFS64_CFLAGS
The returned string specifies which additional flags must be given to
the C compiler if a source is compiled using the
_LARGEFILE64_SOURCE feature select macro; see Feature Test Macros.
_CS_LFS64_LDFLAGS
The returned string specifies which additional flags must be given to
the linker if a source is compiled using the
_LARGEFILE64_SOURCE feature select macro; see Feature Test Macros.
_CS_LFS64_LIBS
The returned string specifies which additional libraries must be linked
to the application if a source is compiled using the
_LARGEFILE64_SOURCE feature select macro; see Feature Test Macros.
_CS_LFS64_LINTFLAGS
The returned string specifies which additional flags must be given to
the lint tool if a source is compiled using the
_LARGEFILE64_SOURCE feature select macro; see Feature Test Macros.
The way to use confstr without any arbitrary limit on string size
is to call it twice: first call it to get the length, allocate the
buffer accordingly, and then call confstr again to fill the
buffer, like this: