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);
}
Apakah rename() tanpa fsync() aman?
tmux:hang dan tidak memuat, dan tidak menanggapi perintah opsi apa pun