Mercurial > pt1
diff recpt1/recpt1.c @ 61:f1553492e8bb
ensure path of destination file exists. imported Jonathan Leffler's mkpath.
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Fri, 09 Oct 2009 11:04:36 +0900 |
parents | aeb885ed4e7e |
children | c6a5c844c7fd |
line wrap: on
line diff
--- a/recpt1/recpt1.c Sat Oct 03 13:25:13 2009 +0900 +++ b/recpt1/recpt1.c Fri Oct 09 11:04:36 2009 +0900 @@ -13,6 +13,7 @@ #include <errno.h> #include <sys/time.h> #include <ctype.h> +#include <libgen.h> #include <netdb.h> #include <arpa/inet.h> @@ -24,6 +25,7 @@ #include "recpt1.h" #include "decoder.h" #include "version.h" +#include "mkpath.h" /* maximum write length at once */ #define SIZE_CHANK 1316 @@ -783,6 +785,13 @@ } else { if(!fileless) { + int status; + char *dir = dirname(strdup(argv[optind + 2])); + status = mkpath(dir, 0777); + if(status == -1) + perror("mkpath"); + free(dir); + wfd = open(argv[optind + 2], (O_RDWR | O_CREAT | O_TRUNC), 0666); if(wfd < 0) { fprintf(stderr, "Cannot open output file: %s\n",