gpt4 book ai didi

C程序: getenv return NULL in GDB/DDD

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:32 26 4
gpt4 key购买 nike

我尝试在我的 C 代码中调用 getenv,这可以在终端中返回正确的 env 字符串,而在 GDB/DDD 中返回 NULL。

void main() {
char * a = getenv("ANCHOR_STEM");
if (strlen(a)>0)
printf("%s\n", a);
}

GDB/DDD 从同一个终端启动。即使我“显示环境”,这个环境也存在。

有人知道吗?

操作系统/工具版本信息:RHEL Linux hostname1 2.6.32-754.3.5.el6.x86_64 #1 SMP Thu Aug 9 11:56:22 EDT 2018 x86_64 GNU/LinuxGNU gdb (GDB) 7.12海合会 (海湾合作委员会) 6.3.0

最佳答案

Even I "show environment", this env exists.

当 GDB 调用您的程序时,它会启动一个新的 shell 来运行该程序。

当目标程序的环境发生变化时,通常这是您的 shell 初始化文件(~/.bashrc~/.kshrc 等)的结果。 ) 改变环境。

改变非交互式 shell 的环境是一个非常糟糕的主意。 Documentation关于如何避免它。

关于C程序: getenv return NULL in GDB/DDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53003695/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com