FreeCalypso > hg > freecalypso-tools
annotate rvinterf/etmsync/hostmkdir.c @ 571:41b3e010808d
libpwon started, compiles
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sun, 02 Feb 2020 17:40:25 +0000 | 
| parents | d332fbf5c145 | 
| children | 
| rev | line source | 
|---|---|
| 
276
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 * host_mkdir() function has been factored out into this module. | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 */ | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 #include <sys/types.h> | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 #include <sys/stat.h> | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 #include <stdio.h> | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 #include <stdlib.h> | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 #include <unistd.h> | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 #include "exitcodes.h" | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 host_mkdir(pathname) | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 char *pathname; | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 { | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 int rc; | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 struct stat st; | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 rc = stat(pathname, &st); | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 if (rc < 0) { | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 rc = mkdir(pathname, 0777); | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 if (rc < 0) { | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 perror(pathname); | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 return(ERROR_UNIX); | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 } | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 return(0); | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 } else { | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 if (S_ISDIR(st.st_mode)) | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 return(0); | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 else { | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 fprintf(stderr, | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 "error: %s already exists and is not a directory\n", | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 pathname); | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 return(ERROR_UNIX); | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 } | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 } | 
| 
 
d332fbf5c145
etmsync: host_mkdir() function factored out of fc-fsio
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 } | 
