在c中创建一个文件及其父目录

时间:2015-01-31 03:03:59

标签: c file fopen subdirectory

我没有找到这个问题的任何相关答案。

我想同时创建一个文件及其父目录:

示例:

FILE *fd2 = fopen("test/test", "w+");

其中test /不存在。

有办法做到这一点吗?

1 个答案:

答案 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