C++ 中的环境变量是否可写?
Are environment variables in C++ writeable?
函数getenv(const char * key)
returnschar *
.
这是否意味着我可以更改返回的 char 数组中的某些字符?
例如
char * name = getenv("PROJECT_NAME");
if(name && strlen(name) > 0) name[0] = 'P';
这样做是好的做法吗?我应该制作自己的数组副本吗?环境变量存储在哪里(内存的哪一部分)?它们在节目结束前可用吗?
感谢您的回答。
在https://en.cppreference.com/w/cpp/utility/program/getenv中:
Modifying the string returned by getenv invokes undefined behavior.
因此您可以修改它,但这样做会导致未定义的行为。所以你不应该这样做
函数getenv(const char * key)
returnschar *
.
这是否意味着我可以更改返回的 char 数组中的某些字符?
例如
char * name = getenv("PROJECT_NAME");
if(name && strlen(name) > 0) name[0] = 'P';
这样做是好的做法吗?我应该制作自己的数组副本吗?环境变量存储在哪里(内存的哪一部分)?它们在节目结束前可用吗?
感谢您的回答。
在https://en.cppreference.com/w/cpp/utility/program/getenv中:
Modifying the string returned by getenv invokes undefined behavior.
因此您可以修改它,但这样做会导致未定义的行为。所以你不应该这样做