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");
}
Exemple #2
0
//////////////////////////////////// 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);
}