NAME
confstr - get configuration dependent string variables
SYNOPSIS
#define _POSIX_C_SOURCE 2
or
#define _XOPEN_SOURCE
#include <unistd.h>
I size_t confstr(int name , char * buf , size_t len );
DESCRIPTION
R confstr ()
gets the value of configuration-dependent string variables.
The
name
argument is the system variable to be queried.
The following variables are supported:
R _CS_GNU_LIBC_VERSION (GNU C library only; since glibc 2.3.2)
A string which identifies the GNU C library version on this system
(e.g, "glibc 2.3.4").
R _CS_GNU_LIBPTHREAD_VERSION (GNU C library only; since glibc 2.3.2)
A string which identifies the POSIX implementation supplied by this
C library (e.g, "NPTL 2.3.4" or "linuxthreads-0.10").
_CS_PATH
A value for the
PATH
variable which indicates where all the POSIX.2 standard utilities can
be found.
If
buf
is not NULL and
len
is not zero,
R confstr ()
copies the value of the string to
buf
truncated to
len - 1
characters if necessary, with a null byte ('\0') as terminator.
This can be detected by comparing the return value of
R confstr ()
against
R len .
If
len
is zero and
buf
is NULL,
R confstr ()
just returns the value as defined below.
RETURN VALUE
If
name
is a valid configuration variable,
R confstr ()
returns the number of bytes (including the terminating null byte)
that would be required to hold the entire value of that variable.
This value may be greater than
R len ,
which means that the value in
buf
is truncated.
If
name
is a valid configuration variable,
but that variable does not have a value, then
R confstr ()
returns 0.
If
name
does not correspond to a valid configuration variable,
R confstr ()
returns 0, and
errno
is set to
R EINVAL .
ERRORS
R EINVAL
If the value of
name
is invalid.
CONFORMING TO
POSIX.1-2001
EXAMPLE
The following code fragment determines the path where to find
the POSIX.2 system utilities:
char *pathbuf;
size_t n;
n = confstr(_CS_PATH,NULL,(size_t) 0);
pathbuf = malloc(n);
if (pathbuf == NULL)
abort();
confstr(_CS_PATH, pathbuf, n);
SEE ALSO