使用cpuid 指令存取Linux 上的CPU 資訊
在這個問題中,開發人員試圖使用方法類似於Windows API 中的_>
在這個問題中,開發人員試圖使用方法類似於Windows API 中的_ cpuinfo() 函數。提供的程式碼嘗試利用彙編指令(cpuid)來檢索此信息,但開發人員希望避免手動彙編的需要。 解決方案在於利用編譯程式碼時可用的 cpuid.h 頭檔海灣合作委員會。這個標頭宣告了兩個函數:<code class="c">unsigned int __get_cpuid_max(unsigned int __ext, unsigned int *__sig); int __get_cpuid(unsigned int __level, unsigned int *__eax, unsigned int *__ebx, unsigned int *__ecx, unsigned int *__edx);</code>
使用範例:
<code class="c">#include <stdio.h> #include <cpuid.h> int main() { unsigned int eax, ebx, ecx, edx; // Get maximum supported CPUID level unsigned int max_level = __get_cpuid_max(0x0, NULL); // Iterate over different CPUID levels for (unsigned int level = 0; level <= max_level; level++) { // Retrieve CPUID data for the current level __get_cpuid(level, &eax, &ebx, &ecx, &edx); printf("Level %u: EAX=%u, EBX=%u, ECX=%u, EDX=%u\n", level, eax, ebx, ecx, edx); } return 0; }</code>
以上是如何在 Linux 中使用「cpuid」指令存取 CPU 資訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!