Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

detection machine info CPUID moteur board id en C

2 réponses
Avatar
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

2 réponses

Avatar
az
On Sun, 31 Oct 2010 02:53:51 +0200, fakessh @ wrote:

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



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)
Avatar
Antoine Leca
fakessh @ écrivit :
tout est dans la question
je voudrais detecter le maximum de ressources de la machine ,



Maximum d'information => information spécifique => non portable...

les info sur le cpu



La première information intéressante, c'est de savoir s'il faut mettre
un pluriel :-)


comme le resultat /proc/cpuinfo



Là, c'est facile : fopen("/proc/cpuinfo", "r")


enfin je voudrais pouvoir retourner du maniere le plus portable possible
les infos sur la machine



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 <limits.h> et sysconf().


vous allez me dire tout est dans binutils



Non, je n'allais pas dire cela, mais alors pas du tout...
Quelle drôle d'idée, ÀMHA.


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 )



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