【问题标题】:What can be the parameters to char getenv(const char *name);?char getenv(const char *name); 的参数可以是什么?
【发布时间】:2011-11-25 22:43:14
【问题描述】:

我查看了getenv() 上的各种文档,它们所描述的只是如何使用它以及它的作用,即名称被指定为参数的环境变量。

但是,我正在尝试找到完整列表或至少尽可能多的可以与getenv()一起使用的列表

我知道很少有人喜欢,

MANPATH
HOSTNAME
PATH
INFOPATH
PKG_CONFIG_PATH
USER

有人可以帮我扩展这个列表吗?

【问题讨论】:

  • 这个列表可能确实很长。有人可能会说“无限长”我目前设置了 200 多个环境变量。在终端窗口中,发出env 命令以查看您已设置的内容。你有一个实际的编程问题想要解决吗?
  • 这肯定是关于 C 函数的话题——答案可能涉及其他事情
  • 对我来说看起来很合题。如果是开放式的。 (我不是这个投票者)
  • 我知道它的无限列表。我从来没有玩过环境变量。我正在尝试获取用户当前会话信息,例如用户名、用户 ID 等。
  • @Rahul - 如果你想要用户名,那么最好从另一个调用而不是 getenv 中获取 - 如果对于特定的信息,你需要询问什么程序设置它并使用它使用的名称 - 如果你想要一份清单,请参阅我的 **environ 编辑 - 所以你需要在你的问题中更具体

标签: c macos unix system environment-variables


【解决方案1】:

getenv 在您的环境中查询任何变量名。在 Unix 中,您可以在 shell 中设置任何变量,因此可以使用的变量没有限制(在 OSX 中,我认为它是任何没有空格的 Unicode 字符串) 因此没有完整的列表。

要查看环境中的内容,请在终端窗口中键入 env

或者按照Unix standard

环境变量的值是一个字符串。对于 C 语言程序,一个称为环境的字符串数组在进程开始时可用。该数组由外部变量environ指向,定义为:

extern char **environ;

【讨论】:

  • 谢谢。我从您提供的链接中获得了我打算拥有的大部分变量。
【解决方案2】:

这里没有完整的列表,因为任何用户或任何程序都可以定义自己的环境变量,具有自己的含义。您可能会询问给定程序可以理解的变量的完整列表——在这种情况下,程序的手册页通常会列出它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-29
    • 2016-07-23
    • 2012-07-21
    • 2011-08-14
    • 1970-01-01
    • 2019-02-01
    • 2011-10-24
    • 1970-01-01
    相关资源
    最近更新 更多