Código C:
Ver original
alsa-lib 1.0.26-1 usr/ usr/bin/ usr/bin/aserver usr/include/ usr/include/alsa/ usr/include/alsa/alisp.h usr/include/alsa/asoundef.h usr/include/alsa/asoundlib.h usr/include/alsa/conf.h usr/include/alsa/control.h usr/include/alsa/control_external.h usr/include/alsa/error.h usr/include/alsa/global.h usr/include/alsa/hwdep.h usr/include/alsa/iatomic.h ... sigue aún más paquetes y más directorios
La cual de ahí, necesito comparar el nombre del paquete, que en este caso sería alsa-lib con una lista, por ende, hará varías veces la comprobación en ese archivo.
Y hago la comprobación de esta manera,
Código C:
Ver original
int pkg_is_installed (const char * n_pkg, int lenght, int show) { if (lenght <= 0 || strnlen(n_pkg, lenght) <= 0) return -1; char buffer[lenght]; char pkg_fix[lenght]; int len; if (len <= 0) return -1; FILE * db; if (db == NULL) { stderr, "pkgrmd >> Error opening «%s»: %s\n", DB_DIR, ); return -1; } return 0; } if (show == 1) stderr, "pkgrmd >> The package «%s» is not installed\n", n_pkg ); return -1; }
Como tengo que hacer un muchas comprobaciones (> 1000), se vuelve muy lento el programa, llegando a durar más de un minuto en un Core 2 Duo, ¿hay alguna sugerencia para éste tipo de casos?
Estaba pensando pasar al principio del programa todo los paquetes de ese archivo a una lista enlazada para que no tener que abrir el archivo cada vez, no sé que pensarás ustedes, así creo que sería más rápido, porque todas las comprobaciones ocurren en la memoria.
Muchas gracias, y saludos.