【问题标题】:Access all environment variables from native iOS C code从原生 iOS C 代码访问所有环境变量
【发布时间】:2013-01-11 14:59:35
【问题描述】:

我必须将用 C 和 C++ 编写的现有代码移植到 iOS。

此代码有时会使用environ 变量来访问所有环境变量。

使用 iOS 编译器工具链编译此代码时,它会抱怨 environ 不是已定义符号。我找不到任何可以提供它的标题或任何合适的替代方法。

不幸的是,environ 用于获取所有环境变量并将它们传递给子例程。也就是说,getenv() 不是一个选项,因为我们不知道要检查哪些环境变量。

在 C 或 C++ 代码中,是否可以通过 iOS 编译器工具链访问 environ 变量?或者您知道任何替代解决方案吗?

【问题讨论】:

  • 我不知道iOS,但它可能支持“扩展”main签名int main(int argc, char **argv, char **envp)吗?
  • 需要访问哪些环境变量?由于沙盒,您可能会发现这种访问非常受限。
  • @Angew:很遗憾,我要把这段代码编译成静态库,所以没有这个入口。

标签: c++ ios c environment-variables


【解决方案1】:

environ 变量必须在用户程序的 C 代码中声明。所以在访问之前像这样声明它:

extern char **environ;

您可能还会发现 this article 关于 iOS 环境很有帮助(它也有一个示例项目)。

【讨论】:

  • 非常简单。非常感谢,不知道一个简单的extern 声明会起作用。
猜你喜欢
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 2017-04-26
  • 2016-12-26
  • 2010-10-12
  • 1970-01-01
  • 2018-06-22
  • 2010-11-21
相关资源
最近更新 更多