【发布时间】:2016-04-24 19:33:55
【问题描述】:
【问题讨论】:
-
我也一直在想这个问题...但是在过去的 25 年里它变得更好了...我记得当时 fopen() 期望一个指向可写字符串的指针。
标签: c++ operating-system environment-variables c++14
【问题讨论】:
标签: c++ operating-system environment-variables c++14
那为什么函数不返回
const char*?
可能是因为与完全不支持 const 的旧 c 标准兼容。
【讨论】:
getenv() 返回了一个指针,该指针指向程序启动时放置环境字符串的内存。这是在程序参数旁边,下面是 argv[] 数组。内存布局是(栈顶)args 到 main()、argv[]、argv 内容、envp[] 数组、envp 内容(栈底)。
getenv() 比 POSIX 早了 15-20 年,所以不要指望从早期的实施中学到任何东西。