问题标签 [getenv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1432 浏览

c - 使用 getenv 和 env 不会给出相同的结果:

我有一个 C 程序,它打印每个环境变量,其名称由标准输入给出。它打印 $PATH、$USER 等变量,但看不到我在 Linux shell 中定义的环境变量...例如,在 ~.bashrc 中我导出了 MYTEST=test_is_working,然后我获取了 bashrc(来源〜/ .bashrc)。我希望程序使用 getenv 返回 test_is_working,但事实并非如此。

它返回:找不到环境

而当我打开终端并输入“env”时,我有 MYTEST=test_is_working

我看到了一个类似的帖子: Using getenv function where the solution is to launch the program from the shell。但我不能,因为我正在 Qtcreator 中运行和调试。

我不知道我在哪里错了,有人可以解释一下吗?

谢谢

0 投票
0 回答
259 浏览

mysql - getenv() 在 MySQL UDF 中返回 null

我在使用 C/C++ 函数getenv()时遇到了一个奇怪的问题。该函数在 Linux 系统(Linux Mint 16 Cinnamon 64bit)上的 MySQL UDF 中使用。我通过编辑文件/etc/environment在系统范围内设置了 JAVA_HOME 环境变量,当使用env命令时,它与所有其他变量一起打印在 shell 中,无论是作为用户还是 root。代码很简单,如下所示:

UDF 在条件中永久返回错误消息,因此javaHome变量始终为空。我创建了另一个简单的 C++ 程序并将 cpp 文件放入已编译的 UDF 库所在的 MySQL 插件目录 ( /usr/lib/mysql/plugin )。

代码按预期返回变量的值,即 JRE 的路径。UDF 代码在我的 Windows 系统上运行良好,但为了让它在 Unix 系统上运行,我不得不稍微修改代码并将GetEnvironmentVariableA()函数替换为getenv()。我无法弄清楚问题是什么。任何指针将不胜感激。

编辑:我已经测试了“HOME”变量的结果,奇怪的是输出是/etc/mysql/而不是/root/,正如我所期望的那样。UDF 是否有自己的环境或类似的环境?

0 投票
3 回答
2576 浏览

c - getenv 不适用于 COLUMNS 和 LINES

我正在尝试获取程序中的列数和行数。我正在使用以下代码来执行此操作:

问题是,当我运行它时,两者都为空。使用其他环境变量(例如PATHor USER)运行它可以正常工作。

我觉得奇怪的是,运行echo $COLUMNSecho $LINES从同一个 shell 都可以正常工作。

为什么我的程序无法获取这两个环境变量。

0 投票
1 回答
1043 浏览

c++ - getenv - 如何设置环境变量

我这样设置环境变量:

然后我想在我的程序中读取该变量:

但我得到一个空值,编辑 1:当我使用 Qt Creator 运行程序时。

当我编译时:

并运行:

程序形成一个终端我得到正确的变量。

0 投票
1 回答
244 浏览

c - Linux 环境变量和 C 项目 getenv()

我需要为 C 项目使用环境变量,所以我在终端中执行了此操作:

file.conf是我创建的文件。

如果我env在终端中这样做,我可以在列表中看到“FILE_CONFIG”及其值(/home/pc/file.conf)。我想在.C程序中分配给path_to_config -> /home/pc/file.conf SO,我这样做了:

但是getenv不会返回 FILE_CONFIG 的路径。当我在调试模式下查看时 path_to_config 值是 0x0。我已经尝试过使用其他环境变量,但我无法使用我导出的这个变量。

0 投票
1 回答
2757 浏览

android - Android 4.4+:检查路径是否在辅助存储上

当 Android 版本为 4.4+ 时,我的应用程序必须检查某个文件夹是否在辅助存储中。

我正在使用这个:

注意:

  • 路径由用户通过文件选择器活动选择,从 /mnt 开始

  • 该应用程序想要像往常一样检查安装的内容,例如将外部 SD 卡插入其插槽时

所以我问上面提到的代码是否总是能够检测到路径何时在辅助存储上,或者在某些设备上它可以找到与 /mnt (Android 4.4+) 不同的奇怪安装点。

0 投票
0 回答
116 浏览

getenv - getenv 返回不同的地址

当从两个不同的函数调用时,getenv("USER") 返回两个不同的地址。

0x7fff60e15e79 0x60e15e79

因此,在第二种情况下,缺少 7fff 部分。当我尝试在第二种情况下打印字符串时,这会导致崩溃。有谁知道为什么会发生这种情况?

0 投票
1 回答
1791 浏览

macos - OS X Yosemite 中 setenv 和 getenv 的奇怪行为

当我设置环境变量时

我可以通过

它返回我“测试”,但是一个简单的

不替代,结果为空。在同一航站楼和新航站楼。

背景:Yosemite 10.10 不再支持 /etc/launchd.conf 用于系统范围的设置,因此通过 launchd.conf 设置环境变量不再适用于 OS X Yosemite/El Capitan/macOS Sierra?看起来很有希望,但我需要通过 访问环境变量$VARNAME,这在我的情况下不起作用。

0 投票
0 回答
118 浏览

c - 在没有 GNOME_DESKTOP_SESSION_ID 的情况下检测 C 中的 Gnome?

我正在尝试在 C 中检测用户的桌面环境(Gnome、KDE ​​等)。

目前,我正在做这样的事情:

但是,在我的系统上,GNOME_DESKTOP_SESSION_ID它被定义为“已弃用”。

是否有另一个环境变量(或完全不同的方式)我可以检查 Gnome 的存在?

0 投票
1 回答
7477 浏览

c - getenv() 分段错误

我必须做我的功课,但我不能走 C 的道路。例如;

如果我运行这段代码,我会得到“分段错误(核心转储)”。我的操作系统是 Ubuntu 14.04 LTS。