FreeCalypso > hg > freecalypso-tools
annotate rvinterf/etmsync/hostmkdir.c @ 572:070b8c8f9be5
top Makefile: libpwon added as a dependency for loadtools
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sun, 02 Feb 2020 17:46:23 +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 } | 
