mkdir.c 353 B

123456789101112131415161718192021222324252627
  1. #include "lib.h"
  2. #include <sys/stat.h>
  3. #include <errno.h>
  4. #include "sys9.h"
  5. /*
  6. * BUG: errno mapping
  7. */
  8. int
  9. mkdir(const char *name, mode_t mode)
  10. {
  11. int n;
  12. struct stat st;
  13. if(stat(name, &st)==0) {
  14. errno = EEXIST;
  15. return -1;
  16. }
  17. n = _CREATE(name, 0, 0x80000000|(mode&0777));
  18. if(n < 0)
  19. _syserrno();
  20. else{
  21. _CLOSE(n);
  22. n = 0;
  23. }
  24. return n;
  25. }