Пример #1
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;
}
Пример #2
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);
}
Пример #3
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;
}