Vous pouvez utiliser mkdir :
$ homme 2 mkdir
#include <sys/stat.h>
#include <sys/types.h>
int result = mkdir("/home/me/test.txt", 0777);
Regardez stat
pour vérifier si le répertoire existe,
Et mkdir
, pour créer un répertoire.
#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);
}
Vous pouvez voir le manuel de ces fonctions avec le man 2 stat
et man 2 mkdir
commandes.
Je veux écrire un programme qui (...) crée le répertoire et un (...) fichier à l'intérieur
parce que c'est une question très courante, voici le code pour créer plusieurs niveaux de répertoires et ensuite appeler fopen. J'utilise une extension gnu pour imprimer le message d'erreur avec printf.
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);
}