void levantaConfigFileEnVariables(SwapConfigFile *ptrvaloresConfigFile,t_config *ptrConfig){ ptrvaloresConfigFile->puerto_escucha = leerUnsigned(ptrConfig, "PUERTO_ESCUCHA"); ptrvaloresConfigFile->nombre_swap = leerString(ptrConfig, "NOMBRE_SWAP"); ptrvaloresConfigFile->cant_paginas = leerUnsigned(ptrConfig, "CANTIDAD_PAGINAS"); ptrvaloresConfigFile->size_pagina = leerUnsigned(ptrConfig, "SIZE_PAGINA"); ptrvaloresConfigFile->retardo_compactacion = leerUnsigned(ptrConfig, "RETARDO_COMPACTACION"); }
//////////////////////////////////// Lee cada par del archivo //////////////////////////////////// void leerPar(Par *pares,FILE *archivo,int *caracter){ int encontrado = 0; char *nomb1,*nomb2,*flecha; nomb1 = leerString(archivo,caracter); nomb2 = leerString(archivo,caracter); flecha = leerString(archivo,caracter); //descarta la flecha if (*caracter != EOF){ Persona *aux; Par *par = pares; if (pares->amigo1 == NULL){ //Si la lista de pares ta vacia. Asumiendo que se hace malloc de pares antes de llamar a leerPares pares->amigo1 = nomb1; pares->amigo2 = nomb2; pares->amigos1 = malloc(sizeof(Persona)); aux = pares->amigos1; while ((*caracter != '\n') && (*caracter != EOF)){ aux->nombre = leerString(archivo,caracter); //No usa malloc porque la funcion leerString lo hace if ((*caracter != '\n') && (*caracter != EOF)){ aux->amigos = malloc(sizeof(Persona)); aux = aux->amigos; } } } else{ while(par != NULL){ //con que alguno de los dos dea distinto ya significa que es otro par if (strcmp(par->amigo1,nomb1) == 0 && strcmp(par->amigo2,nomb2) == 0){ encontrado = 1; //revisa hasta el final pero se queda parado en el ultimo de la lista break; //de pares para no perder la referencia a esta lista } if(par->sig != NULL){ par = par->sig; } else{ break; } }//Puede pasar que el ciclo anterior termine en el ultimo par porque son iguales o porque es el ultimo if(!encontrado){ par->sig = malloc(sizeof(Par)); par->sig->amigo1 = nomb1; par->sig->amigo2 = nomb2; par->sig->amigos1 = malloc(sizeof(Persona)); aux = par->sig->amigos1; while ((*caracter != '\n') && (*caracter != EOF)){ aux->nombre = leerString(archivo,caracter); //No usa malloc porque la funcion leerString lo hace if ((*caracter != '\n') && (*caracter != EOF)){ aux->amigos = malloc(sizeof(Persona)); aux = aux->amigos; } } } else{ par->amigos2 = malloc(sizeof(Persona)); aux = par->amigos2; while ((*caracter != '\n') && (*caracter != EOF)){ aux->nombre = leerString(archivo,caracter); //No usa malloc porque la funcion leerString lo hace if ((*caracter != '\n') && (*caracter != EOF)){ aux->amigos = malloc(sizeof(Persona)); aux = aux->amigos; } } } } } free(flecha); }