GNU/Linux >> Belajar Linux >  >> Linux

Membuat direktori baru di C

Anda dapat menggunakan mkdir:

$man 2 mkdir

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

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

Lihat stat untuk memeriksa apakah direktori tersebut ada,

Dan mkdir , untuk membuat direktori.

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

Anda dapat melihat manual dari fungsi-fungsi ini dengan man 2 stat dan man 2 mkdir perintah.


Saya ingin menulis program yang (...) membuat direktori dan (...) file di dalamnya

karena ini adalah pertanyaan yang sangat umum, berikut adalah kode untuk membuat beberapa level direktori dan kemudian memanggil fopen. Saya menggunakan ekstensi gnu untuk mencetak pesan kesalahan dengan 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 tidak membuat file txt

  2. Kesalahan fatal:cuda.h:Tidak ada file atau direktori seperti itu

  3. Cegah 10.2 membuat direktori Wolfram Mathematica di Linux

  1. Cd Ke Direktori Nama-Tidak Dikenal Di Jalur yang Diketahui?

  2. Bagaimana menemukan jalur direktori parsial?

  3. Apa arti NT_STATUS_BAD_NETWORK_NAME di Samba?

  1. Menghitung jumlah file dalam direktori menggunakan C

  2. Mengecualikan direktori saat membuat file .tar.gz

  3. Tambahkan skrip bash ke jalur