问题标签 [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.
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 中运行和调试。
我不知道我在哪里错了,有人可以解释一下吗?
谢谢
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 是否有自己的环境或类似的环境?
c - getenv 不适用于 COLUMNS 和 LINES
我正在尝试获取程序中的列数和行数。我正在使用以下代码来执行此操作:
问题是,当我运行它时,两者都为空。使用其他环境变量(例如PATH
or USER
)运行它可以正常工作。
我觉得奇怪的是,运行echo $COLUMNS
和echo $LINES
从同一个 shell 都可以正常工作。
为什么我的程序无法获取这两个环境变量。
c++ - getenv - 如何设置环境变量
我这样设置环境变量:
然后我想在我的程序中读取该变量:
但我得到一个空值,编辑 1:当我使用 Qt Creator 运行程序时。
当我编译时:
并运行:
程序形成一个终端我得到正确的变量。
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。我已经尝试过使用其他环境变量,但我无法使用我导出的这个变量。
android - Android 4.4+:检查路径是否在辅助存储上
当 Android 版本为 4.4+ 时,我的应用程序必须检查某个文件夹是否在辅助存储中。
我正在使用这个:
注意:
路径由用户通过文件选择器活动选择,从 /mnt 开始
该应用程序想要像往常一样检查安装的内容,例如将外部 SD 卡插入其插槽时
所以我问上面提到的代码是否总是能够检测到路径何时在辅助存储上,或者在某些设备上它可以找到与 /mnt (Android 4.4+) 不同的奇怪安装点。
getenv - getenv 返回不同的地址
当从两个不同的函数调用时,getenv("USER") 返回两个不同的地址。
0x7fff60e15e79 0x60e15e79
因此,在第二种情况下,缺少 7fff 部分。当我尝试在第二种情况下打印字符串时,这会导致崩溃。有谁知道为什么会发生这种情况?
macos - OS X Yosemite 中 setenv 和 getenv 的奇怪行为
当我设置环境变量时
我可以通过
它返回我“测试”,但是一个简单的
不替代,结果为空。在同一航站楼和新航站楼。
背景:Yosemite 10.10 不再支持 /etc/launchd.conf 用于系统范围的设置,因此通过 launchd.conf 设置环境变量不再适用于 OS X Yosemite/El Capitan/macOS Sierra?看起来很有希望,但我需要通过 访问环境变量$VARNAME
,这在我的情况下不起作用。
c - 在没有 GNOME_DESKTOP_SESSION_ID 的情况下检测 C 中的 Gnome?
我正在尝试在 C 中检测用户的桌面环境(Gnome、KDE 等)。
目前,我正在做这样的事情:
但是,在我的系统上,GNOME_DESKTOP_SESSION_ID
它被定义为“已弃用”。
是否有另一个环境变量(或完全不同的方式)我可以检查 Gnome 的存在?
c - getenv() 分段错误
我必须做我的功课,但我不能走 C 的道路。例如;
如果我运行这段代码,我会得到“分段错误(核心转储)”。我的操作系统是 Ubuntu 14.04 LTS。