summaryrefslogtreecommitdiffstats
path: root/src/fopenmkdir.c
diff options
context:
space:
mode:
authorAnton L. Šijanec <anton@sijanec.eu>2020-04-29 22:38:41 +0200
committerAnton L. Šijanec <anton@sijanec.eu>2020-04-29 22:38:41 +0200
commit52a5a9d9bd8d767bd76c02f20668e1c7d92e33f6 (patch)
treebda89def263033aa7efc2f87e55b9c7add3013c0 /src/fopenmkdir.c
parentdelam. (diff)
downloadbverbose-52a5a9d9bd8d767bd76c02f20668e1c7d92e33f6.tar
bverbose-52a5a9d9bd8d767bd76c02f20668e1c7d92e33f6.tar.gz
bverbose-52a5a9d9bd8d767bd76c02f20668e1c7d92e33f6.tar.bz2
bverbose-52a5a9d9bd8d767bd76c02f20668e1c7d92e33f6.tar.lz
bverbose-52a5a9d9bd8d767bd76c02f20668e1c7d92e33f6.tar.xz
bverbose-52a5a9d9bd8d767bd76c02f20668e1c7d92e33f6.tar.zst
bverbose-52a5a9d9bd8d767bd76c02f20668e1c7d92e33f6.zip
Diffstat (limited to 'src/fopenmkdir.c')
-rw-r--r--src/fopenmkdir.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/fopenmkdir.c b/src/fopenmkdir.c
new file mode 100644
index 0000000..e4c4d68
--- /dev/null
+++ b/src/fopenmkdir.c
@@ -0,0 +1,33 @@
+#include <mkdirp.c>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+FILE * fopen_mkdir(char* filename, char* mode) {
+ FILE * file_to_return;
+ file_to_return = fopen(filename, mode);
+ if(file_to_return == NULL) {
+ char folder_of_file[256];
+ strcpy(folder_of_file, filename);
+ char * p;
+ p = strrchr(folder_of_file, '/');
+ if (!p) {
+ printf("[fopenmkdir.c] filename contains no slash.\n");
+ return NULL;
+ } else {
+ printf("folder is %s\n", folder_of_file);
+ printf("filename is %s\n", filename);
+ *p = '\0';
+ }
+ if(mkdir_p(folder_of_file) != 0) {
+ return NULL;
+ }
+ file_to_return = fopen(filename, mode);
+ if(file_to_return == NULL) {
+ return NULL;
+ }
+ return file_to_return;
+ } else {
+ return file_to_return;
+ }
+}