1: /*
2: * Some systems do not have setenv(). This one is modeled after 4.4 BSD, but
3: * is implemented in terms of portable primitives only: getenv(), putenv()
4: * and malloc(). It should therefore be safe to use on every UNIX system.
5: *
6: * If clobber == 0, do not overwrite an existing variable.
7: *
8: * Returns nonzero if memory allocation fails.
9: *
10: * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
11: */
12:
13: #ifndef lint
14: static char sccsid[] = "@(#) setenv.c 1.1 93/03/07 22:47:58";
15: #endif
16:
17: /* setenv - update or insert environment (name,value) pair */
18:
19: int setenv(name, value, clobber)
20: char *name;
21: char *value;
22: int clobber;
23: {
24: char *malloc();
25: char *getenv();
26: char *cp;
27:
28: if (clobber == 0 && getenv(name) != 0)
29: return (0);
30: if ((cp = malloc(strlen(name) + strlen(value) + 2)) == 0)
31: return (1);
32: sprintf(cp, "%s=%s", name, value);
33: return (putenv(cp));
34: }
Defined functions
Defined variables