int main(int argc, char **argv){ if(argc!=3){ printf("\nmi_mkfs: Error debe escribir: $ ./mi_mkfs <nombre_fichero> <cantidad_bloques>\n"); return -1; } //cantidad_bloques unsigned int numBloques = atoi(argv[2]); //cantidad_inodos unsigned int ninodos = numBloques/4; if(numBloques==0){ printf("\nmi_mkfs: El nº de bloques debe ser mayor a 0.\n"); return -1; } //ETAPA 1: unsigned char buf[BLOCKSIZE]; //Rellenamos de 0's el buffer. memset(buf,0,BLOCKSIZE); //Montamos el dispositivo. printf("\nmi_mkfs: Montando el dispositivo...\n"); bmount(argv[1]);//nombre_fichero printf("\nmi_mkfs: El dispositivo se ha montado con éxito.\n"); printf("\nmi_mkfs: Realizando escritura...\n"); //ETAPA 1: //Escribimos todos los bloques en el dispositivo. for(int i=0; i<numBloques; i++){ bwrite(i,buf); } if(initSB(numBloques,ninodos)<0)return -1; if(initMB()<0)return -1; if(initAI(ninodos)<0)return -1; //Se escribe el directorio raíz = inodo raíz. reservar_inodo('d',7); //Desmontamos el dispositivo. printf("\nmi_mkfs: Desmontando el dispositivo...\n"); bumount(); printf("\nmi_mkfs: Dispositivo desmontado con éxito.\n"); return 0; }
int main(int argc, char **argv){ if(argc!=3){ printf("Número de argumentos incorrecto \n"); return -1; } unsigned int n_bloques = atoi(argv[2]); //Número de bloques del FS unsigned char buf[blocksize]; memset(buf,0,blocksize); bmount(argv[1]); //Monta Disco int i; for (i=0; i<n_bloques-1; i++){ //Llena bloques con 0s bwrite(i,buf); } memset(buf,1,blocksize); bwrite(n_bloques,buf); int block = n_bloques/4;//Para el cáculo de inodos if(initSB(n_bloques, block)==-1){ //Inicializa SB printf("Error al escribir superbloque"); }else{ printf("Superbloque escrito \n"); } if(initMB(n_bloques)==-1){ //Inicializa MB printf("Error al escribir mapa de bits"); }else{ printf("Mapa de bits escrito \n"); } int n = tamAI(block); if (initAI(n)==-1){ //Inicializa AI printf("Error al escribir el array de inodes"); }else{ printf("Array de inodes escrito \n"); } int inodoraiz = reservar_inodo('d',7); printf("Sistema de ficheros creado correctamente \n"); bumount(); //Desmonta disco return 0; }
int main(int argc, char **argv){ int i; unsigned int fichero; unsigned int cantidad_bloques; unsigned int cantInt; unsigned char buffer[BLOCKSIZE]; unsigned int numInodos; fichero=bmount(argv[1]); cantidad_bloques=atoi(argv[2]); cantInt=atoi(argv[3]); //divisor para la cantidad de inodos de nuestro sistema if (fichero==-1){ printf("Error en el montaje del dispositivo en mi_mkfs.c\n"); } else { memset (buffer,0,BLOCKSIZE); for (i=0; i<cantidad_bloques; i++){ bwrite(i,buffer); } printf("i: %i\n",i); } numInodos = cantidad_bloques/cantInt; tamMB(cantidad_bloques); tamAI(numInodos); initSB(cantidad_bloques,numInodos); initMB(cantidad_bloques); initAI(numInodos); bumount(); return 0; }
int main (int argc,char **argv) { if (argc == 2) { signal(SIGCHLD,reaper); mount(argv[1]); struct inodo in; if (leer_inodo(&in, 0) < 0) { printf("ERROR (simulacion.c -> mi_stat(/)): Error al leer el estado\n"); } struct superbloque SB; if (bread(0, (char *)&SB) < 0) { printf("ERROR (simulacion.c -> error al leer el superbloque)\n"); } if (in.t_bytes > 0) { vaciar(); initSB(SB.n_bloques, argv[1]); initMB(SB.n_bloques); initAI(SB.n_bloques); } int i; for (i = 0; i < N_PROCESOS; i++) { int hilo = fork(); if (hilo == 0) { if (proceso(i) < 0) { printf("ERROR (simulacion.c): Error al crear el proceso %d.\n", i); return (-1); } exit(0); } else if (hilo < 0) { i--; printf("Llamamos al reaper, hilo = %d\n", hilo); reaper(); } sleep(1); } while (acabados < N_PROCESOS) { pause(); } unmount(argv[1]); } else { printf("ERROR (simulacion.c): Error, parámetros != de 2 (%d).\n", argc); return (-1); } return (0); }
CArchStringUnix::CArchStringUnix() { initMB(); }