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