environment.c 611 B

1234567891011121314151617181920212223242526272829
  1. #include <sys/stat.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <stdio.h>
  5. #include <errno.h>
  6. #include <time.h>
  7. #include "sandbox.h"
  8. int init_env(t_param *params)
  9. {
  10. char * path = params->tmppath = (char *) malloc(sizeof(*path) * (strlen(params->tmpdir) + 24));
  11. sprintf(path, "%s/sandbox_%ld:%d", params->tmpdir, time(NULL), getpid());
  12. if (mkdir(path, 0) == -1)
  13. {
  14. fprintf(stderr, "Cannot create directory %s: %s\n", path, strerror(errno));
  15. return -1;
  16. }
  17. return 0;
  18. }
  19. void release_env(t_param *params)
  20. {
  21. rmdir(params->tmppath);
  22. /* TODO remove files */
  23. free(params->tmppath);
  24. free(params);
  25. }