GNU/Linux >> Linux Esercitazione >  >> Linux

Creazione di una nuova directory in C

Puoi usare mkdir:

$ man 2 mkdir

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

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

Guarda stat per controllare se la directory esiste,

E mkdir , per creare una directory.

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

Puoi vedere il manuale di queste funzioni con il man 2 stat e man 2 mkdir comandi.


Voglio scrivere un programma che (...) crei la directory e un (...) file al suo interno

poiché questa è una domanda molto comune, ecco il codice per creare più livelli di directory e quindi chiamare fopen. Sto usando un'estensione gnu per stampare il messaggio di errore con 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. CD in una directory con nome sconosciuto in un percorso noto?

  2. file_put_contents non crea file txt

  3. Aggiungi uno script bash al percorso

  4. Errore irreversibile:cuda.h:file o directory non presenti

  5. Impedisci alla versione 10.2 di creare la directory Wolfram Mathematica su Linux

Come aggiungere una directory a PATH in Linux

8 comandi essenziali per la navigazione dei file Linux per i nuovi utenti

Linux:aggiungi una directory a PATH

Esclusione della directory durante la creazione di un file .tar.gz

Come trovare un percorso di directory parziale?

Cosa significa NT_STATUS_BAD_NETWORK_NAME in Samba?