我想知道如果我从getenv
我知道这不是一个好的代码。顺便提一下,我知道setenv
。
像:
char *new_path = "/home/user/dev/myTry1";
char *path = getenv("PATH");// assume there is : PATH=/home/user/dev/myTry
//now *path = "/home/user/dev/myTry"
memcpy(path,new_path,strlen(new_path)+1);
这是一种未定义的行为吗?或者只是错误的代码?
我试过了,没有发生错误或分段错误。
答案 0 :(得分:5)
要求合规应用程序不要直接修改environ,而是仅使用此处描述的功能将流程环境作为抽象对象进行操作。
答案 1 :(得分:2)
带有未定义行为的代码错误。即你不是保姆。