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; }
void mostrarSB(struct superbloque SB) { printf("\t*****Tamaños*****\n"); printf("#Cantidad total de bloques para el mapa de bits son: %d \n",tamMB(SB.totBloques)); printf("#Cantidad total de bloques para el array de inodos son: %d \n",tamAI(SB.totInodos)); printf("\t*****Superbloque*****\n"); printf("#Posición del primer bloque del mapa de bits: %d \n",SB.posPrimerBloqueMB); printf("#Posición del último bloque del mapa de bits: %d \n",SB.posUltimoBloqueMB); printf("#Posición del primer bloque del array de inodos: %d \n",SB.posPrimerBloqueAI); printf("#Posición del último bloque del array de inodos: %d \n",SB.posUltimoBloqueAI); printf("#Posición del primer bloque de datos: %d \n",SB.posPrimerBloqueDatos); printf("#Posición del último bloque de datos: %d \n",SB.posUltimoBloqueDatos); printf("#Posición del inodo del directorio raíz: %d \n",SB.posInodoRaiz); printf("#Posición del primer inodo libre: %d \n",SB.posPrimerInodoLibre); printf("#Cantidad de bloques libres: %d \n",SB.cantBloquesLibres); printf("#Cantidad de inodos libres: %d \n",SB.cantInodosLibres); printf("#Cantidad total de bloques: %d \n",SB.totBloques); printf("#Cantidad total de inodos: %d \n",SB.totInodos); }
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; }