我没有找到这个问题的任何相关答案。
我想同时创建一个文件及其父目录:
示例:
FILE *fd2 = fopen("test/test", "w+");
其中test /不存在。
有办法做到这一点吗?
答案 0 :(得分:0)
在Linux中,您可以使用以下代码
来完成#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
...
/* check if directory exist */
struct stat status = { 0 };
if( stat("test", &status) == -1 ) {
/* create it */
mkdir( "test", 0700 );
}
/* open file */
FILE *fd2 = fopen("test/test", "w+");
...
对于第一个test
语句(if
返回值为零)中存在文件stat
的情况,您还可以使用宏{{{}检查这是文件还是目录。 {}} {}}和S_ISREG
以及S_ISDIR
结构的字段st_mode
。