【发布时间】:2016-08-17 09:50:06
【问题描述】:
在我的代码中,我使用以下代码:
putenv("TZ=UTC");
tzset();
设置时区。
putenv()的声明(this answer建议设置环境变量):
int putenv(char *string);
我使用的构建系统设置了编译器标志-Wall -Wextra -Werror -std=c++0x,因此我得到了错误:
timeGateway.cpp:80:18: error: ISO C++ forbids converting a string constant to 'char*' [-Werror=write-strings]
putenv("TZ=UTC");
^
我知道这个错误可以通过使用来抑制:
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wwrite-strings"
putenv("TZ=UTC");
#pragma GCC diagnostic pop
但这很丑。
我的问题:在 C++ 中设置环境变量的正确方法是什么?
【问题讨论】:
-
仔细阅读
putenv的手册页,里面有一些重要的东西!
标签: c++ string c++11 environment-variables string-literals