Muy rápidamente...

El número de nucleos de CPU se puede ver a través del directorio "/sys/ devices/system/cpu/", así que aprovechando que en Poesia_binaria_hay_un_post sobre_como_leer_directorios_en_C... aquí está un código que lee, la idea sería usar la función para usar el número correcto de hilos/procesos [getcpus.c]

include

include

include

include

define CPU_PATH "/sys/devices/system/cpu/"

int getCores(){

DIR *dir;

struct dirent* it;

int count = 0;

int i, isCpu;

dir = opendir(CPU_PATH);

if (dir == NULL){

exit(1);

}

while((it = readdir(dir)) != NULL){

if (strncmp(it->d_name, "cpu", 3) == 0){

isCpu = 1;

for(i = 3; it->d_name[i] != '\0'; i++){

if ((it->d_name[i] < '0')||(it->d_name[i] > '9')){

isCpu = 0;

break;

}

}

count += isCpu;

}

}

closedir(dir);

return count;

}

int main(int argc, char **argv){

printf("Encontrado(s): %i nucleo(s)\n", getCores());

return 0;

}

Hasta la próxima