代码之家  ›  专栏  ›  技术社区  ›  arachide

读过带开关

  •  3
  • arachide  · 技术社区  · 15 年前

    我知道有一种方法可以读取带开关。

    1 回复  |  直到 12 年前
        1
  •  1
  •   Community CDub    8 年前

    在iPhone SDK中,没有文档记录的方法可以做到这一点。我很确定他们使用的是SysCtl(),这是一个标准的BSD调用,所以它也必须出现在iPhoneOSX上。

    请参阅此答案: How to get network adapter stats in linux/Mac OSX?

    一个好问题是他们如何通过AppStore过程。我认为sysctl()大约是从文档化到未文档化API的“一半”:在SDK文档中没有提到它,但它存在于所有BSD系统中。所以苹果可能没有(或者没有)过滤标准的BSD调用,这就是为什么他们让sysctl()通过的原因。

    更新 :我在iPhone模拟器上成功地运行了这个netstat代码(目前我没有iPhone设备)。我要做的就是发表评论 #include <net/route.h> 因为它不在iPhone SDK中,所以从这个头文件复制以下定义:

    #define RTM_IFINFO2 0x12
    

    所以比我想象的简单。由于此代码中基本上没有不在SDK头中的函数调用,因此如果您使用此代码(它们不能筛选简单常量…),Apple可能会批准您的应用程序。