13e12c5d1SDavid du Colombier #include <u.h>
23e12c5d1SDavid du Colombier #include <libc.h>
33e12c5d1SDavid du Colombier
43e12c5d1SDavid du Colombier int
putenv(char * name,char * val)53e12c5d1SDavid du Colombier putenv(char *name, char *val)
63e12c5d1SDavid du Colombier {
73e12c5d1SDavid du Colombier int f;
8*80ee5cbfSDavid du Colombier char ename[100];
93e12c5d1SDavid du Colombier long s;
103e12c5d1SDavid du Colombier
11*80ee5cbfSDavid du Colombier if(strchr(name, '/') != nil)
12*80ee5cbfSDavid du Colombier return -1;
13*80ee5cbfSDavid du Colombier snprint(ename, sizeof ename, "/env/%s", name);
14*80ee5cbfSDavid du Colombier if(strcmp(ename+5, name) != 0)
15*80ee5cbfSDavid du Colombier return -1;
163e12c5d1SDavid du Colombier f = create(ename, OWRITE, 0664);
173e12c5d1SDavid du Colombier if(f < 0)
183e12c5d1SDavid du Colombier return -1;
193e12c5d1SDavid du Colombier s = strlen(val);
203e12c5d1SDavid du Colombier if(write(f, val, s) != s){
213e12c5d1SDavid du Colombier close(f);
223e12c5d1SDavid du Colombier return -1;
233e12c5d1SDavid du Colombier }
243e12c5d1SDavid du Colombier close(f);
253e12c5d1SDavid du Colombier return 0;
263e12c5d1SDavid du Colombier }
27