В 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
из stat
struct.
Да, создайте каталог «test», затем создайте файл «test/test». Я считаю, что создание каталогов зависит от ОС, поэтому укажите свою ОС. – chux
Я работаю над linux. Разве нет возможности автоматически создать каталог? @chux – anothertest
Не так много происходит в C автоматически. – chux