GNU/Linux >> Linux の 問題 >  >> Linux

Cで新しいディレクトリを作成する

mkdir を使用できます:

$ 男 2 mkdir

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

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

stat を見てください ディレクトリが存在するかどうかを確認するため、

そして mkdir 、ディレクトリを作成します。

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

これらの関数のマニュアルは man 2 stat で見ることができます そして man 2 mkdir コマンド。


<ブロック引用>

(...) ディレクトリとその中に (...) ファイルを作成するプログラムを書きたい

これは非常によくある質問なので、複数レベルのディレクトリを作成して fopen を呼び出すコードを次に示します。 printf でエラー メッセージを出力するために、gnu 拡張機能を使用しています。

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. Cを使用してディレクトリ内のファイル数を数える

  2. .tar.gz ファイルの作成時にディレクトリを除外する

  3. file_put_contentsがtxtファイルを作成していません

  1. 致命的なエラー:cuda.h:そのようなファイルまたはディレクトリはありません

  2. Linux で 10.2 が Wolfram Mathematica ディレクトリを作成しないようにする

  3. cd 使用時の / の使用

  1. Linuxでのディレクトリの作成、削除、および管理

  2. パスに bash スクリプトを追加する

  3. Linux でパスを置き換えるショートカットを追加できますか?