env 输出中缺少 HOSTNAME

use*_*747 1 linux hostname

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

hostname=>guixos

echo $HOSTNAME=>guixos

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

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

env | fgrep HOST=>

因此,我有三种实际有效的访问主机名的方法,以及两种我希望有效但无效的方法。有人可以解释为什么这两种方法也不给我主机名吗?