Sie können mkdir:
verwenden$ man 2 mkdir
#include <sys/stat.h>
#include <sys/types.h>
int result = mkdir("/home/me/test.txt", 0777);
Sehen Sie sich stat
an um zu prüfen, ob das Verzeichnis existiert,
Und mkdir
, um ein Verzeichnis zu erstellen.
#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);
}
Das Handbuch dieser Funktionen können Sie mit dem man 2 stat
einsehen und man 2 mkdir
Befehle.
Ich möchte ein Programm schreiben, das (...) das Verzeichnis und eine (...) Datei darin erstellt
Da dies eine sehr häufige Frage ist, ist hier der Code, um mehrere Verzeichnisebenen zu erstellen und dann fopen aufzurufen. Ich verwende eine gnu-Erweiterung, um die Fehlermeldung mit printf auszugeben.
void rek_mkdir(char *path) {
char *sep = strrchr(path, '/');
if(sep != NULL) {
*sep = 0;
rek_mkdir(path);
*sep = '/';
}
if(mkdir(path, 0777) && errno != EEXIST)
printf("error while trying to create '%s'\n%m\n", path);
}
FILE *fopen_mkdir(char *path, char *mode) {
char *sep = strrchr(path, '/');
if(sep) {
char *path0 = strdup(path);
path0[ sep - path ] = 0;
rek_mkdir(path0);
free(path0);
}
return fopen(path,mode);
}