summaryrefslogtreecommitdiffstats
path: root/man3/setenv.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/setenv.3')
-rw-r--r--man3/setenv.386
1 files changed, 86 insertions, 0 deletions
diff --git a/man3/setenv.3 b/man3/setenv.3
new file mode 100644
index 000000000..3064e8afc
--- /dev/null
+++ b/man3/setenv.3
@@ -0,0 +1,86 @@
+.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
+.\"
+.\" 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.
+.\"
+.\" References consulted:
+.\" Linux libc source code
+.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
+.\" 386BSD man pages
+.\" Modified Sat Jul 24 18:20:58 1993 by Rik Faith (faith@cs.unc.edu)
+.\" Modified Fri Feb 14 21:47:50 1997 by Andries Brouwer (aeb@cwi.nl)
+.\" Modified 9 Jun 2004, Michael Kerrisk <mtk16@ext.canterbury.ac.nz>
+.\" Changed unsetenv() prototype; added EINVAL error
+.\" Noted non-standard behaviour of setenv() if name contains '='
+.\"
+.TH SETENV 3 2004-05-09 "BSD" "Linux Programmer's Manual"
+.SH NAME
+setenv \- change or add an environment variable
+.SH SYNOPSIS
+.nf
+.B #include <stdlib.h>
+.sp
+.BI "int setenv(const char *" name ", const char *" value ", int " overwrite );
+.sp
+.BI "int unsetenv(const char *" name );
+.fi
+.SH DESCRIPTION
+The \fBsetenv()\fP function adds the variable \fIname\fP to the
+environment with the value \fIvalue\fP, if \fIname\fP does not
+already exist. If \fIname\fP does exist in the environment, then
+its value is changed to \fIvalue\fP if \fIoverwrite\fP is non-zero;
+if \fIoverwrite\fP is zero, then the value of \fIname\fP is not
+changed.
+.PP
+The \fBunsetenv()\fP function deletes the variable \fIname\fP from
+the environment.
+.SH "RETURN VALUE"
+The \fBsetenv()\fP function returns zero on success, or \-1 if there
+was insufficient space in the environment.
+The \fBunsetenv()\fP function returns zero on success,
+or \-1 on error, with
+.I errno
+set to indicate the cause of the error.
+.SH "ERRORS"
+.TP
+.B EINVAL
+.I name
+contained an '=' character.
+.SH "CONFORMING TO"
+BSD 4.3
+.SH "NOTES"
+Prior to glibc 2.2.2, \fBunsetenv()\fP was prototyped
+as returning \fIvoid\fP; more recent glibc versions follow the
+SUSv3-compliant prototype shown in the SYNOPSIS.
+.SH BUGS
+SUSv3 specifies that if
+.I name
+contains an '=' character, then
+.BR setenv ()
+should fail with the error
+.BR EINVAL ;
+however, glibc currently (v2.3.3) allows an '=' sign in
+.IR name .
+Portable applications should avoid this!
+.SH "SEE ALSO"
+.BR clearenv (3),
+.BR getenv (3),
+.BR putenv (3),
+.BR environ (5)