GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erstellen eines neuen Verzeichnisses in C

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

Linux
  1. file_put_contents erstellt keine txt-Datei

  2. Fügen Sie dem Pfad ein Bash-Skript hinzu

  3. Kann ich eine Verknüpfung hinzufügen, um einen Pfad in Linux zu ersetzen?

  4. Rsync kopiert aktuelles Verzeichnis mit Namen

  5. Verwendung von / bei Verwendung von CD

So fügen Sie ein Verzeichnis zu PATH in Linux hinzu

Erstellen, Löschen und Verwalten von Verzeichnissen unter Linux

8 grundlegende Linux-Dateinavigationsbefehle für neue Benutzer

Linux:Fügen Sie PATH ein Verzeichnis hinzu

Wie findet man einen partiellen Verzeichnispfad?

Was bedeutet NT_STATUS_BAD_NETWORK_NAME in Samba?