detection machine info CPUID moteur board id en C
Le
fakessh
bonjour les newsgroups
bonjour tout le monde les gars et les filles
tout est dans la question
je voudrais detecter le maximum de ressources de la machine , les info
sur le cpu
comme le resultat /proc/cpuinfo
et un peu comme le fait l installateur d une distrib qui detecte le
materiel avant l install
enfin je voudrais pouvoir retourner du maniere le plus portable possible
les infos sur la machine
vous allez me dire tout est dans binutils
je voudrais me passer de l assembleur au maximum ( je n'y comprend rien )
et je voudrais que le code soit portable sur le maximum de machine y
compris windows ( le c windows est important )
pouvez vous m eclairer ma lanterne ?
merci beaucoup tout les retours seront les bienvenus
bonjour tout le monde les gars et les filles
tout est dans la question
je voudrais detecter le maximum de ressources de la machine , les info
sur le cpu
comme le resultat /proc/cpuinfo
et un peu comme le fait l installateur d une distrib qui detecte le
materiel avant l install
enfin je voudrais pouvoir retourner du maniere le plus portable possible
les infos sur la machine
vous allez me dire tout est dans binutils
je voudrais me passer de l assembleur au maximum ( je n'y comprend rien )
et je voudrais que le code soit portable sur le maximum de machine y
compris windows ( le c windows est important )
pouvez vous m eclairer ma lanterne ?
merci beaucoup tout les retours seront les bienvenus

Poser une question


IMHO, tu vas devoir utiliser des directives de préprocesseur pour inclure
différents codes en fonction de l'os.
Si ça peut aider, voir :
* sys/sysinfo.h (GNU)
get_nprocs_conf()
get_nprocs()
stdlib.h (libC)
getloadavg(double loadavg[], int nelem)
Maximum d'information => information spécifique => non portable...
La première information intéressante, c'est de savoir s'il faut mettre
un pluriel :-)
Là, c'est facile : fopen("/proc/cpuinfo", "r")
Le « plus portable » que je connaisse, et qui ne l'est pas autant qu'on
le voudrait, ce sont les différentes informations définies par POSIX ou
X/Open, en particulier via
Non, je n'allais pas dire cela, mais alors pas du tout...
Quelle drôle d'idée, ÀMHA.
Bin t'es pas rendu...
Déjà, un truc simple comme le CPUID{EAX=1}, c'est tellement simple à
programmer en assembleur (ou en assembleur intégré genre #asm ou asm()),
et d'autre part tellement spécifique à une plateforme déterminée, que
personne ne s'est donné la peine de normaliser une manière universelle
d'accéder à cette information...
Comme tu veux tout, y compris des choses qui sont objectivement
contradictoires, la première des choses à faire, c'est de reposer ton
problème, en hiérarchisant les priorités (par exemple, quelle est la
priorité relative de « portable vers Windows » par rapport à « portable
(ou pas) sur amd64/x86_64/x64 », à « nécessite (ou pas) GCC » et à
« nécessite (ou pas) les privilèges root/administrateur » ?) Définis
aussi la forme que dois prendre ce que tu programmes, si c'est un
programme intégré (auquel cas il y a des choses très bien en Perl ou en
Python), ou bien si tu veux des fonctions de bibliothèque à lier
ultérieurement (ce qui peut effectivement être une indication pour C
comme langage de programmation.)
Une fois que tu as cela, en fonction de ce qui est en tête de liste, tu
trouveras le meilleur groupe de discussions pour t'aider à progresser
dans la résolution de ton problème...
et je pense que fr.comp.lang.c ne sera pas le favori.
Antoine