summaryrefslogtreecommitdiffstats
path: root/man3/confstr.3
blob: 82d092e663b42b065c166dedc848eb161d1e919a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
.\" (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de)
.\" This file can be distributed under the terms of the GNU General Public
.\" License.
.\" Modified Sat Jul 24 19:53:02 1993 by Rik Faith (faith@cs.unc.edu)
.TH CONFSTR 3  "April 17, 1993" "GNU" "Linux Programmer's Manual"
.SH NAME
confstr \- get configuration dependent string variables
.SH SYNOPSIS
.nf
.B #define __USE_POSIX_2
.nl
.B #include <unistd.h>
.sp
.BI "size_t confstr(int " "name" ", char *" buf ", size_t " len ");"
.fi
.SH DESCRIPTION
.B 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
.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
.BR NULL ,
and 
.I len
is not zero,
.B confstr()
copies the value of the string to
.I buf
truncuated to
.I len \- 1
characters if necessary, with a null character as termination.
This can be detected by comparing the return value of
.B confstr()
against
.IR len .
.PP
If
.I len
is zero and
.I buf
is 
.BR NULL ,
.B confstr()
just returns the value as defined below.
.SH "RETURN VALUE"
If
.I name
does not correspond to a valid configuration variable,
.B confstr()
returns 0.
.SH EXAMPLES
The following code fragment determines the path where to find
the POSIX.2 system utilities:
.br
.nf
.in 10

char *pathbuf; size_t n;

n = confstr(_CS_PATH,NULL,(size_t)0);
if ((pathbuf = malloc(n)) == NULL) abort();
confstr(_CS_PATH, pathbuf, n);
.SH ERRORS
If the value of
.I name
is invalid,
.I errno
is set to
.BR EINVAL .
.SH "CONFORMS TO"
proposed POSIX.2
.SH "BUGS"
POSIX.2 is not yet an approved standard; the information in this
manpage is subject to change.
.SH SEE ALSO
.BR sh "(1), " exec "(2), " system (3)