GNU/Linux >> Tutoriales Linux >  >> Linux

Creando un nuevo directorio en C

Puede usar mkdir:

$ hombre 2 mkdir

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

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

Mira stat para verificar si el directorio existe,

Y mkdir , para crear un directorio.

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

Puedes ver el manual de estas funciones con el man 2 stat y man 2 mkdir comandos.


Quiero escribir un programa que (...) cree el directorio y un (...) archivo dentro de él

Debido a que esta es una pregunta muy común, aquí está el código para crear múltiples niveles de directorios y luego llamar a fopen. Estoy usando una extensión gnu para imprimir el mensaje de error 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. Contando el número de archivos en un directorio usando C

  2. file_put_contents no crea un archivo txt

  3. Agregue un script bash a la ruta

  4. Evite que 10.2 cree un directorio de Wolfram Mathematica en Linux

  5. Uso de / al usar cd

Cómo agregar un directorio a PATH en Linux

8 comandos esenciales de navegación de archivos de Linux para nuevos usuarios

Linux:agregar un directorio a PATH

Error fatal:cuda.h:No existe tal archivo o directorio

¿Puedo agregar un acceso directo para reemplazar una ruta en Linux?

Rsync copiando el directorio actual con nombre