summaryrefslogtreecommitdiffstats
path: root/man3/confstr.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/confstr.3')
-rw-r--r--man3/confstr.3157
1 files changed, 157 insertions, 0 deletions
diff --git a/man3/confstr.3 b/man3/confstr.3
new file mode 100644
index 0000000..5efd862
--- /dev/null
+++ b/man3/confstr.3
@@ -0,0 +1,157 @@
+'\" t
+.\" Copyright (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de)
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.\" 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 libc 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 2023-07-20 "Linux man-pages 6.05.01"
+.SH NAME
+confstr \- get configuration dependent string variables
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.B #include <unistd.h>
+.PP
+.BI "size_t confstr(int " "name" ", char " buf [. size "], size_t " size );
+.fi
+.PP
+.RS -4
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.RE
+.PP
+.BR confstr ():
+.nf
+ _POSIX_C_SOURCE >= 2 || _XOPEN_SOURCE
+.fi
+.SH DESCRIPTION
+.BR confstr ()
+gets the value of configuration-dependent string variables.
+.PP
+The
+.I name
+argument is the system variable to be queried.
+The following variables are supported:
+.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").
+.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").
+.TP
+.B _CS_PATH
+A value for the
+.B PATH
+variable which indicates where all the POSIX.2 standard utilities can
+be found.
+.PP
+If
+.I buf
+is not NULL and
+.I size
+is not zero,
+.BR confstr ()
+copies the value of the string to
+.I buf
+truncated to
+.I size \- 1
+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
+.IR size .
+.PP
+If
+.I size
+is zero and
+.I buf
+is NULL,
+.BR confstr ()
+just returns the value as defined below.
+.SH RETURN VALUE
+If
+.I name
+is a valid configuration variable,
+.BR 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
+.IR size ,
+which means that the value in
+.I buf
+is truncated.
+.PP
+If
+.I name
+is a valid configuration variable,
+but that variable does not have a value, then
+.BR confstr ()
+returns 0.
+If
+.I name
+does not correspond to a valid configuration variable,
+.BR confstr ()
+returns 0, and
+.I errno
+is set to
+.BR EINVAL .
+.SH ERRORS
+.TP
+.B EINVAL
+The value of
+.I name
+is invalid.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbx lb lb
+l l l.
+Interface Attribute Value
+T{
+.na
+.nh
+.BR confstr ()
+T} Thread safety MT-Safe
+.TE
+.sp 1
+.SH STANDARDS
+POSIX.1-2008.
+.SH HISTORY
+POSIX.1-2001.
+.SH EXAMPLES
+The following code fragment determines the path where to find
+the POSIX.2 system utilities:
+.PP
+.in +4n
+.EX
+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);
+.EE
+.in
+.SH SEE ALSO
+.BR getconf (1),
+.BR sh (1),
+.BR exec (3),
+.BR fpathconf (3),
+.BR pathconf (3),
+.BR sysconf (3),
+.BR system (3)