CONFSTR(3)                (2020-06-09)                 CONFSTR(3)

          confstr - get configuration dependent string variables

          #include <unistd.h>

          size_t confstr(int name, char *buf, size_t len

     Feature Test Macro Requirements for glibc (see

          confstr(): _POSIX_C_SOURCE >= 2 || _XOPEN_SOURCE

          confstr() gets the value of configuration-dependent string

          The name argument is the system variable to be queried.  The
          following variables are supported:

          _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").

          _CS_GNU_LIBPTHREAD_VERSION (GNU C library only; since glibc
               A string which identifies the POSIX implementation sup-
               plied by this C library (e.g., "NPTL 2.3.4" or

               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, confstr() copies the
          value of the string to buf truncated to len - 1 bytes if
          necessary, with a null byte (aq\0aq) as terminator.  This can
          be detected by comparing the return value of confstr()
          against len.

          If len is zero and buf is NULL, confstr() just returns the
          value as defined below.

          If name is a valid configuration variable, 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 len, which means
          that the value in buf is truncated.

     Page 1                         GNU              (printed 5/25/22)

     CONFSTR(3)                (2020-06-09)                 CONFSTR(3)

          If name is a valid configuration variable, but that variable
          does not have a value, then confstr() returns 0.  If name
          does not correspond to a valid configuration variable,
          confstr() returns 0, and errno is set to EINVAL.

               The value of name is invalid.

          For an explanation of the terms used in this section, see
          attributes(7).  allbox; lb lb lb l l l.
          Interface Attribute Value T{ confstr() T}   Thread
          safety  MT-Safe

          POSIX.1-2001, POSIX.1-2008.

          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)
              confstr(_CS_PATH, pathbuf, n);

          getconf(1), sh(1), exec(3), fpathconf(3), pathconf(3),
          sysconf(3), system(3)

          This page is part of release 5.10 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

     Page 2                         GNU              (printed 5/25/22)