코코아에서 프로세서 유형이 PPC 또는 Intel인지 확인하는 가장 좋은 방법은 무엇입니까? (탄소를 사용해야합니까?)

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

문제

프로그램의 다른 곳에서 사용하려면 문자열로 가져와야합니다. 컴파일러 설정에 대해 걱정하지 않습니다.

나는 찾았다 HowTogEthardWareandnetWorkInfo Cocoadev에서는 내가 알고 싶었던 것이 PPC vs. Intel 일 때 약간 강렬 해 보였습니다.

도움이 되었습니까?

해결책

응용 프로그램이 지방이 구축 된 경우 (즉, 인텔의 Rosetta에서 실행되지 않음)이 정보를 얻기 위해 전화를 걸 필요가 없습니다. 어떤 아키텍처에 따라 다른 코드가 실행됩니다.. 따라서 정보는 컴파일 시간에 사용할 수 있습니다.

#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의 Mach Headers를 참조하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top