-.\" (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de)
+.\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de)
.\"
+.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
-.\" License.
+.\" %%%LICENSE_END
+.\"
.\" Modified Sat Jul 24 19:53:02 1993 by Rik Faith (faith@cs.unc.edu)
+.\"
.\" FIXME Many more values for 'name' are supported, some of which
-.\" are documented under 'info confstr'.
-.\" See <bits/confname.h> for the rest.
-.\" These should all be added to this page.
-.\" See also the POSIX.1-2001 specification of confstr()
-.TH CONFSTR 3 2007-07-26 "GNU" "Linux Programmer's Manual"
+.\" are documented under 'info confstr'.
+.\" See <bits/confname.h> for the rest.
+.\" These should all be added to this page.
+.\" See also the POSIX.1-2001 specification of confstr()
+.\"
+.TH CONFSTR 3 2019-03-06 "GNU" "Linux Programmer's Manual"
.SH NAME
confstr \- get configuration dependent string variables
.SH SYNOPSIS
.nf
.B #include <unistd.h>
-.sp
+.PP
.BI "size_t confstr(int " "name" ", char *" buf ", size_t " len );
.fi
-.sp
+.PP
.in -4n
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.in
-.sp
-.BR getcwd ():
+.PP
+.BR confstr ():
_POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE
.SH DESCRIPTION
.BR confstr ()
.TP
.BR _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").
+(e.g., "glibc 2.3.4").
.TP
.BR _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").
+C library (e.g., "NPTL 2.3.4" or "linuxthreads-0.10").
.TP
.B _CS_PATH
A value for the
.I buf
truncated to
.I len \- 1
-characters if necessary, with a null byte (\(aq\\0\(aq) as terminator.
+bytes if necessary, with a null byte (\(aq\e0\(aq) as terminator.
This can be detected by comparing the return value of
.BR confstr ()
against
is NULL,
.BR confstr ()
just returns the value as defined below.
-.SH "RETURN VALUE"
+.SH RETURN VALUE
If
.I name
is a valid configuration variable,
which means that the value in
.I buf
is truncated.
-
+.PP
If
.I name
is a valid configuration variable,
.SH ERRORS
.TP
.B EINVAL
-If the value of
+The value of
.I name
is invalid.
-.SH "CONFORMING TO"
-POSIX.1-2001
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lb lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR confstr ()
+T} Thread safety MT-Safe
+.TE
+.SH CONFORMING TO
+POSIX.1-2001, POSIX.1-2008.
.SH EXAMPLE
The following code fragment determines the path where to find
the POSIX.2 system utilities:
-.br
-.nf
+.PP
.in +4n
-
+.EX
char *pathbuf;
size_t n;
-n = confstr(_CS_PATH,NULL,(size_t) 0);
+n = confstr(_CS_PATH, NULL, (size_t) 0);
pathbuf = malloc(n);
if (pathbuf == NULL)
abort();
confstr(_CS_PATH, pathbuf, n);
+.EE
.in
-.fi
-.SH "SEE ALSO"
+.SH SEE ALSO
+.BR getconf (1),
.BR sh (1),
.BR exec (3),
+.BR fpathconf (3),
+.BR pathconf (3),
+.BR sysconf (3),
.BR system (3)