/* * This file is part of the UCB release of Plan 9. It is subject to the license * terms in the LICENSE file found in the top-level directory of this * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No * part of the UCB release of Plan 9, including this file, may be copied, * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ #include #include int putenv(const char *name, const char *val) { int f; char ename[100]; int32_t s; if(strchr(name, '/') != nil) return -1; snprint(ename, sizeof ename, "/env/%s", name); if(strcmp(ename+5, name) != 0) return -1; f = create(ename, OWRITE, 0664); if(f < 0) return -1; s = strlen(val); if(write(f, val, s) != s){ close(f); return -1; } close(f); return 0; }