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 feature_test_macros(7)):

   confstr(): _POSIX_C_SOURCE >= 2 || _XOPEN_SOURCE


   confstr() gets the value of configuration-dependent string variables.

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

          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  ('\0')  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.

   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.


   EINVAL The value of name is invalid.


   For   an   explanation   of   the  terms  used  in  this  section,  see

   Interface  Attribute      Value   
   confstr()  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),


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

More Linux Commands

Net::Server::Multiplex(3pm) - Multiplex several connections
This personality is designed to handle multiple connections all within one process. It should only be used with protocols that are guaranteed to be able to resp

pstoedit(1) - a tool converting PostScript and PDF files int
RELEASE LEVEL This manpage documents release 3.50 of pstoedit. USE pstoedit converts PostScript and PDF files to various vector graphic formats. The resulting f

unlzma(1) - Compress or decompress .xz and .lzma files......
xz is a general-purpose data compression tool with command line syntax similar to gzip(1) and bzip2(1). The native file format is the .xz format, but the legacy

samba(7) - A Windows SMB/CIFS fileserver for UNIX (ManPage)
The Samba software suite is a collection of programs that implements the Server Message Block (commonly abbreviated as SMB) protocol for UNIX systems and provid

XtOverrideTranslations(3) - manage translation tables.......
The XtParseTranslationTable function compiles the translation table into the opaque internal representation of type XtTranslations. Note that if an empty transl

is_term_resized(3ncurses) - change the curses terminal size
This is an extension to the curses library. It provides callers with a hook into the ncurses data to resize windows, primarily for use by programs running in an

Tcl_FindHashEntry(3) - procedures to manage hash tables.....
A hash table consists of zero or more entries, each consisting of a key and a value. Given the key for an entry, the hashing routines can very quickly locate th

getitimer(2) - get or set value of an interval timer........
The system provides each process with three interval timers, each decrementing in a distinct time domain. When any timer expires, a signal is sent to the proces

XML::LibXML::Boolean(3pm) - Boolean true/false values.......
XML::LibXML::Boolean objects implement simple boolean true/false objects. API XML::LibXML::Boolean-&gt;True Creates a new Boolean object with a true value. XML::Li

getdomainname(2) - get/set domain name - Linux manual page
These functions are used to access or to change the NIS domain name of the host system. setdomainname() sets the domain name to the value given in the character

sched_setparam(2) - set and get scheduling parameters.......
sched_setparam() sets the scheduling parameters associated with the scheduling policy for the process identified by pid. If pid is zero, then the parameters of

execlp(3) - execute a file (Library - Linux man page).......
The exec() family of functions replaces the current process image with a new process image. The functions described in this manual page are front-ends for execv

We can't live, work or learn in freedom unless the software we use is free.