putenv.c 398 B

1234567891011121314151617181920212223242526
  1. #include <u.h>
  2. #include <libc.h>
  3. int
  4. putenv(char *name, char *val)
  5. {
  6. int f;
  7. char ename[100];
  8. long s;
  9. if(strchr(name, '/') != nil)
  10. return -1;
  11. snprint(ename, sizeof ename, "/env/%s", name);
  12. if(strcmp(ename+5, name) != 0)
  13. return -1;
  14. f = create(ename, OWRITE, 0664);
  15. if(f < 0)
  16. return -1;
  17. s = strlen(val);
  18. if(write(f, val, s) != s){
  19. close(f);
  20. return -1;
  21. }
  22. close(f);
  23. return 0;
  24. }