ما هي أفضل طريقة للعثور إذا كان نوع المعالج هو PPC أو إنتل في الكاكاو؟ (هل لديك لاستخدام الكربون؟)

StackOverflow https://stackoverflow.com/questions/1619561

سؤال

وأنا بحاجة للحصول عليه كسلسلة استخدام في أي مكان آخر في البرنامج، وأنا لست قلقا حول إعدادات مترجم.

ولقد وجدت HowToGetHardwareAndNetworkInfo على CocoaDev، ولكن يبدو شديد قليلا عند كل ما أريد أن أعرفه هو PPC مقابل إنتل.

هل كانت مفيدة؟

المحلول

إذا بنيت طلبك الدهون (أي ليست قيد التشغيل تحت رشيد على إنتل)، لا تحتاج إلى إجراء أي مكالمات للحصول على هذه المعلومات، لأن <م> رمز مختلف وسوف يتم تشغيل، اعتمادا على بنية لك 'إعادة على . وهكذا، فإن المعلومات المتاحة في وقت الترجمة:

#if defined __i386__ || defined __x86_64__
NSString *processorType = @"Intel";
#elif defined __ppc__ || defined __ppc64__
NSString *processorType = @"PPC";
#elif defined __arm__
NSString *processorType = @"ARM";
#else
NSString *processorType = @"Unknown Architecture";
#endif

إذا كنت تريد حقا أن تفعل تقرير في وقت التشغيل لسبب معاكس، يجب أن تكون قادرا على استخدام وظيفة sysctlbyname المحددة في <sys/sysctl.h>.

نصائح أخرى

وماذا عن uname؟

struct utsname uts;
uname(&uts);
printf("%s\n", uts.machine);

هل طباعة مثل PPC أو I386 أو x86_64 اعتمادا على الجهاز.

والجزء الوحيد من تلك الفوضى التي يهمك فعلا عن هنا هو:

host_info(mach_host_self(), HOST_BASIC_INFO, (host_info_t)&hostInfo, &infoCount);

واطلع على رؤوس ماخ في Kernel.framework للحصول على تعريفات بنية ومستمرة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top