Ejemplo n.º 1
0
int main(int argc, char **argv){
	if(argc != 3){
		printf("Faltan argumentos\n");
		return -1;
	}
	
	bmount(argv[1]);
	empty(0);
	empty(1);
	
	if(argv[2][strlen(argv[2])-1] == '/'){
		if(directorio_vacio(argv[2]) < 1){
			printf("Directorio no vacío\n");
			return -1;
		}
	}
	
	if(mi_unlink(argv[2]) < 0){
		printf("Error al desenlazar los ficheros/directorios\n");
		return -1;
	}
	
	bumount();
	
	printf("Fichero/directorio desenlazado correctamente\n");
	
	return 0;
	
}
Ejemplo n.º 2
0
void cleanup() {
	int i;	
	char nombreFichero[MAXLONG];

	for(i=0; i <= PROCESOS; i++) {
		sprintf(nombreFichero,"/proceso-%i.dat",i);

		if (mi_unlink(nombreFichero) == 1)
			printf("Eliminado %s\n", nombreFichero);
	}
}
Ejemplo n.º 3
0
int vaciar() {
	
	char nombre[N_LINEA];
	memset(nombre, '\0', N_LINEA);

	int i;
	for(i = 0; i < N_PROCESOS; i++) {
		sprintf(nombre,"/proceso-%d.dat",i);

		if (mi_unlink(nombre) < 0) {
			printf("El proceso %s no existe.\n", nombre);
		}
		else {
			printf("%s eliminado!\n", nombre);
		}
	}
}
Ejemplo n.º 4
0
int main(int argc, char **argv) {

    if (argc != 3) {
        printf("Error: Número de argumentos incorrecto.\n");
        return -1;
    }

    bmount(argv[1]);

    if (mi_unlink(argv[2]) == -1) {
        printf("Error: No se puede borrar el fichero/directorio.\n");
    } else {
        printf("Borrado correctamente.\n");
    }

    bumount();

    return 0;
}
Ejemplo n.º 5
0
int main(int argc, char **argv) {
	
	if (argc == 3) {
		
		mount(argv[1]);
		
		if (mi_unlink(argv[2]) < 0) {
			printf("ERROR (mi_rm.c): Fallo al ejecutar mi_unlink(%s).\n", argv[2]);
			return (-1);
		}
		
		unmount(argv[1]);
	
	}
	else {
		printf("Error en los parámetros de mi_rm\n");
	}
	
	return (0);
}
Ejemplo n.º 6
0
int main(int argc, char **argv) {
    /*argc = nº de parámetros
      argv[0]="mi_rm"; nombre del main
      argv[1]=disco(sistema de ficheros)
      argv[2]= /ruta	
     */
    if (argc != 3) {
        printf("ERROR: mi_rm => main: Faltan argumentos!!! El número permitido de argumentos son 3. \n");
        return (EXIT_FAILURE);
    } else {
        if (bmount(argv[1]) == -1) {
            printf("ERROR: mi_rm => main: Error al abrir (bmount) el sistema de ficheros.\n");
            return (EXIT_FAILURE);
        }

        char camino[strlen(argv[2])];
        strcpy(camino, argv[2]);

        struct STAT stat_inodo;
        if (mi_stat(argv[2], &stat_inodo) < 0) {
            printf("ERROR: mi_rm => main: Error al leer el inodo.\n");
            return (EXIT_FAILURE);
        }

        if (strcmp(camino, "/") == 0) {
            printf("No se puede borrar el directorio raíz\n");
        } else if ((stat_inodo.tipo == 'd') && (stat_inodo.tamEnBytesLog != 0)) {
            printf("No se puede borrar porque el directorio no está vacío.\n");
        } else {
            mi_unlink(camino);
        }

        if (bumount() == -1) {
            printf("ERROR: mi_ln => main =>Error al desmontar(bumount) el sistema de ficheros.\n");
            return (EXIT_FAILURE);
        }
    }
    return (EXIT_SUCCESS);
}