【问题标题】:Are environment variables in C++ writeable?C++ 中的环境变量是可写的吗?
【发布时间】:2022-01-24 10:46:45
【问题描述】:

函数getenv(const char * key) 返回char *

这是否意味着我可以更改返回的 char 数组中的某些字符?

例如

char * name = getenv("PROJECT_NAME");

if(name && strlen(name) > 0) name[0] = 'P';

这样做是个好习惯吗?我应该制作自己的数组副本吗?环境变量存储在哪里(内存的哪一部分)?直到项目结束都可以使用吗?

感谢您的回答。

【问题讨论】:

标签: c++ memory environment-variables


【解决方案1】:

https://en.cppreference.com/w/cpp/utility/program/getenv:

修改 getenv 返回的字符串会调用未定义的行为。

因此您可以修改它,但这样做会导致未定义的行为。所以你不应该这样做

【讨论】:

    猜你喜欢
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    • 1970-01-01
    相关资源
    最近更新 更多