编程技术记录

世界你好!

苹果app的进程是否运行在转译模式(Rosetta translation),通过调用sysctlbyname函数,传入sysctl.proc_translated 标识来判断

/// 返回 1 表示在Rosetta translation模式 ;返回 0 表示在Native Code模式;返回 -1,表示发生错误
int processIsTranslated() {
   int ret = 0;
   size_t size = sizeof(ret);
   if (sysctlbyname("sysctl.proc_translated", &ret, &size, NULL, 0) == -1) 
   {
      if (errno == ENOENT)
         return 0;
      return -1;
   }
   return ret;
}

参考地址https://developer.apple.com/documentation/apple_silicon/about_the_rosetta_translation_environment#3616845

© Beli. All Rights Reserved.