mirror of https://github.com/mkerrisk/man-pages
148 lines
3.8 KiB
Groff
148 lines
3.8 KiB
Groff
.\" (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de)
|
|
.\"
|
|
.\" 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.
|
|
.\"
|
|
.\" Permission is granted to copy and distribute modified versions of this
|
|
.\" manual under the conditions for verbatim copying, provided that the
|
|
.\" entire resulting derived work is distributed under the terms of a
|
|
.\" permission notice identical to this one.
|
|
.\"
|
|
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
.\" responsibility for errors or omissions, or for damages resulting from
|
|
.\" the use of the information contained herein. The author(s) may not
|
|
.\" have taken the same level of care in the production of this manual,
|
|
.\" which is licensed free of charge, as they might when working
|
|
.\" professionally.
|
|
.\"
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
|
.\" License.
|
|
.\" 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"
|
|
.SH NAME
|
|
confstr \- get configuration dependent string variables
|
|
.SH SYNOPSIS
|
|
.nf
|
|
.B #include <unistd.h>
|
|
.sp
|
|
.BI "size_t confstr(int " "name" ", char *" buf ", size_t " len );
|
|
.fi
|
|
.sp
|
|
.in -4n
|
|
Feature Test Macro Requirements for glibc (see
|
|
.BR feature_test_macros (7)):
|
|
.in
|
|
.sp
|
|
.BR getcwd ():
|
|
_POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE
|
|
.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 len
|
|
is not zero,
|
|
.BR confstr ()
|
|
copies the value of the string to
|
|
.I buf
|
|
truncated to
|
|
.I len \- 1
|
|
characters if necessary, with a null byte (\(aq\\0\(aq) as terminator.
|
|
This can be detected by comparing the return value of
|
|
.BR confstr ()
|
|
against
|
|
.IR len .
|
|
.PP
|
|
If
|
|
.I len
|
|
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 len ,
|
|
which means that the value in
|
|
.I buf
|
|
is truncated.
|
|
|
|
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
|
|
If the value of
|
|
.I name
|
|
is invalid.
|
|
.SH "CONFORMING TO"
|
|
POSIX.1-2001
|
|
.SH EXAMPLE
|
|
The following code fragment determines the path where to find
|
|
the POSIX.2 system utilities:
|
|
.br
|
|
.nf
|
|
.in +4n
|
|
|
|
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);
|
|
.in
|
|
.fi
|
|
.SH "SEE ALSO"
|
|
.BR sh (1),
|
|
.BR exec (3),
|
|
.BR system (3)
|