プログラムがc++ で (Windows および Linux で) 実行されている間に、システム/プロセッサ アーキテクチャを検出することは可能ですか?
7770 次
4 に答える
3
unameLinuxでは、システムコールを使用できます。このユーザー割り当ての構造体に入力します。
struct utsname { char sysname[]; /* Operating system name (e.g., "Linux") */ char nodename[]; /* Name within "some implementation-defined network" */ char release[]; /* OS release (e.g., "2.6.28") */ char version[]; /* OS version */ char machine[]; /* Hardware identifier */ #ifdef _GNU_SOURCE char domainname[]; /* NIS or YP domain name */ #endif };
フィールドはmachineアーキテクチャを識別します。
于 2009-10-28T13:59:00.540 に答える
0
この情報をどのように処理するかによって(たとえば、特定のCPUに対して最速のハンドコード化されたアセンブリコードを選択する)、Linuxでは/ proc / cpuinfo、具体的には「フラグ」セクションを読み、SSEから選択できます。 /SSE2実装vs.MMX実装vs.何でも。
ビッグエンディアンシステムとリトルエンディアンシステムは少し複雑です。http://en.wikipedia.org/wiki/Endianessを参照してください。
于 2009-10-28T12:48:28.607 に答える