Создание нового каталога в C

Я хочу написать программу, которая проверяет наличие каталога; если этот каталог не существует, он создает в нем каталог и файл журнала, но если каталог уже существует, он просто создает новый файл журнала в этой папке.

Как я могу сделать это в C с Linux?

Ответ 1

Посмотрите stat для проверки наличия каталога,

И mkdir, чтобы создать каталог.

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

struct stat st = {0};

if (stat("/some/directory", &st) == -1) {
    mkdir("/some/directory", 0700);
}

Вы можете увидеть руководство по этим функциям с помощью команд man 2 stat и man 2 mkdir.

Ответ 2

Вы можете использовать mkdir:

$man 2 mkdir

 #include <sys/stat.h>
 #include <sys/types.h>

 int result = mkdir("/home/me/test.txt", 0777);