GNU/Linux >> Tutoriels Linux >  >> Linux

Créer un nouveau répertoire en C

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);
}

Linux
  1. file_put_contents ne crée pas de fichier txt

  2. Ajouter un script bash au chemin

  3. Utilisation de / lors de l'utilisation d'un cd

  4. Créer un programme dans bin

  5. Comment trouver un chemin de répertoire partiel ?

Comment ajouter un répertoire à PATH sous Linux

Créer, supprimer et gérer des répertoires sous Linux

8 commandes de navigation de fichiers Linux essentielles pour les nouveaux utilisateurs

CD vers un répertoire de nom inconnu dans un chemin connu ?

Comment créer un nouveau répertoire sous Linux

Linux :ajouter un répertoire à PATH