Y a-t-il un moyen de connaître dynamicment l’architecture Linux, que ce soit x86-64
ou x86
?
La fonction standard Uname de Posix (implémentée dans le syscall uname (2)) vous fournit dynamicment les informations sur le CPU. Vous voulez probablement le champ machine
.
Attention aux kernelx x86-64 exécutant un programme 32 bits (par exemple une dissortingbution Debian 32 bits dans un Debian 64 bits, ou peut-être un binary ELF 32 bits fonctionnant sur un système 64 bits); Je n’ai aucune idée de ce qu’ils donnent dans cette situation; J’imagine un peu x86_64
dans ce cas, puisque le kernel ne connaît pas vraiment les binarys et la libc
du système.
Voir aussi le syscall de personnalité spécifique à Linux (2) .
Google est votre ami: http://sourceforge.net/p/predef/wiki/Architectures/
Vous voulez tester les macros __amd64__
et __i386__
. Idéalement, vous ne testez pas du tout les macros et écrivez du code portable correct.
Vous pouvez utiliser la commande lscpu pour répertorier les caractéristiques du processeur.