OSDN Git Service

7e5cf447ac6f6f9860032b10f7a32989442d2977
[lib1stclass/main.git] / rmkdir.c
1 #include <stdio.h>
2 #include <sys/stat.h>
3 #include <dirent.h>
4 #include <string.h>
5
6 int rmkdir(const char *check_dir){
7   struct stat st;
8   char *token_p=NULL;
9   char dir_path[512]="";
10   char moto[512]="";
11   if(stat(check_dir, &st)!=0){
12     if(mkdir(check_dir, 0755)==0){
13     }
14     else{
15       safe_strcat(moto, check_dir);
16       token_p=strtok(moto, "/");
17       safe_strcat(dir_path, "/");
18       safe_strcat(dir_path, token_p);
19       if(stat(dir_path, &st)!=0){
20         if(mkdir(dir_path, 0755)==0){
21         }
22         else{
23           return 1;
24         }
25       }
26       while((token_p=strtok(NULL,"/"))!=NULL){
27         safe_strcat(dir_path, "/");
28         safe_strcat(dir_path, token_p);
29         if(stat(dir_path, &st)!=0){
30           if(mkdir(dir_path, 0755)==0){
31           }
32           else{
33             return 1;
34           }
35         }
36       }
37     }
38   }
39   return 0;
40 }