首页 > 解决方案 > env 输出中缺少 HOSTNAME

问题描述

我有这个 C 代码getenv("HOSTNAME");,它NULL在运行 Linux (Guixsd) 的 VM 上返回。在调查时,我运行了以下三个命令,它们按预期工作:

hostname=>guixos

echo $HOSTNAME=>guixos

cat /etc/hostname=> guixos(没有换行符)

所以我希望主机名也会被env打印出来,但是......

env | fgrep HOST=>

所以,我有三种访问实际有效的主机名的方法,还有两种我希望能工作的方法,但没有。有人可以解释为什么这两种方法也不给我主机名吗?

标签: linuxhostname

解决方案


HOSTNAME是 bash(但不是其他 shell)默认设置的变量。它不出口。

由于它没有被导出,因此它不会被envbash shell 继承或从任何 C 程序调用。


推荐阅读