|
|
1.1 root 1: .\" Copyright (c) 1988 The Regents of the University of California.
2: .\" All rights reserved.
3: .\"
4: .\" Redistribution and use in source and binary forms are permitted
5: .\" provided that: (1) source distributions retain this entire copyright
6: .\" notice and comment, and (2) distributions including binaries display
7: .\" the following acknowledgement: ``This product includes software
8: .\" developed by the University of California, Berkeley and its contributors''
9: .\" in the documentation or other materials provided with the distribution
10: .\" and in all advertising materials mentioning features or use of this
11: .\" software. Neither the name of the University nor the names of its
12: .\" contributors may be used to endorse or promote products derived
13: .\" from this software without specific prior written permission.
14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
15: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
16: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17: .\"
18: .\" @(#)getenv.3 6.9 (Berkeley) 5/17/90
19: .\"
20: .TH GETENV 3 "May 17, 1990"
21: .AT 3
22: .SH NAME
23: getenv, putenv, setenv, unsetenv \- manipulate environmental variables
24: .SH SYNOPSIS
25: .nf
26: .ft B
27: #include <stdlib.h>
28:
29: char *
30: getenv(const char *name);
31:
32: setenv(const char *name, const char *value, int overwrite);
33:
34: putenv(const char *string);
35:
36: void
37: unsetenv(const char *name);
38: .ft R
39: .fi
40: .SH DESCRIPTION
41: .I Getenv
42: searches the environment list (see
43: .IR environ (7))
44: for a string of the form \fIname\fP\fB=\fP\fIvalue\fP and returns
45: a pointer to the string
46: .I value
47: if such a string is present, and a NULL pointer if it is not.
48: .PP
49: .I Setenv
50: searches the environment list as
51: .I getenv
52: does; if the string
53: .I name
54: is not found, a string of the form \fIname\fP\fB=\fP\fIvalue\fP is
55: added to the environment.
56: If it is found, and
57: .I overwrite
58: is non-zero, its value is changed to
59: .IR value .
60: .I Setenv
61: returns 0 on success and -1 on failure, setting the external variable
62: .IR errno .
63: .PP
64: .I Putenv
65: takes an argument of the form ``\fIname\fR=\fIvalue\fR'' and is the
66: equivalent of:
67: .sp
68: .RS
69: setenv(name, value, 1);
70: .RE
71: .PP
72: .I Unsetenv
73: removes all occurrences of the string
74: .I name
75: from the environment.
76: There is no library provision for completely removing the current
77: environment.
78: It is suggested that the following code be used to do so.
79: .sp
80: .RS
81: .nf
82: static char *envinit[1];
83: extern char **environ;
84: environ = envinit;
85: .fi
86: .RE
87: .PP
88: All of these routines permit, but do not require, a trailing equals
89: (``='') sign on
90: .I name
91: or a leading equals sign on
92: .IR value .
93: .SH ERRORS
94: .TP
95: [ENOMEM]
96: .I Setenv
97: or
98: .I putenv
99: failed because they were unable to allocate memory for the environment.
100: .SH SEE ALSO
101: csh(1), sh(1), execve(2), environ(7)
102: .SH STANDARDS
103: .B Getenv
104: conforms to ANSI X3.159-1989 (``ANSI C'').
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.