c - C 中的环境变量

标签 c environment-variables setenv getenv

我知道这类问题已经被问了很多次,但似乎没有一个答案有帮助。我在 Ubuntu Linux 中通过 setenv() 函数调用设置环境变量。但是,该程序似乎没有使用此环境变量。如果我使用 getenv() 它会获得正确的值,但程序的输出是错误的。但是,当我在 shell 中使用 export BLOCKSIZE=512 时,程序的输出是正确的。我不会从程序中生成不同的进程。下面只是我正在做的代码片段,它不是我的整个程序。

这有什么原因吗?

最佳答案

这里的问题是 Ubuntu Linux 的默认 BLOCKSIZE1024 而不是 512。因此,在计算 stat 结构中的 block (即 st_blocks 字段)时,我收到了与正常 ls 不同的答案,因为在 >stat block 仅以 512 字节 block 计算。这意味着我的程序不必考虑环境变量的大小。这里的主要问题是假设 Linux 使用 512 字节的 block 大小,正如我在教科书中得知的那样。

关于c - C 中的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12557712/

相关文章:

c - malloc 不存在的物理地址错误

python - 在 MacOS 上的 Emacs 中设置 PYTHONPATH?

php - 是否可以使用 PHP CLI 获取 *.sh 文件并在 PHP 脚本中访问导出的环境变量?

bash - 是否有相当于 setenv 的 bash

c - 使用scanf()读取 "00"

c - 如何始终使错误的 C 程序出现段错误?

c++ - 多字符常量警告

azure - 如何让Azure云启动环境变量持续存在

tomcat - OPENSHIFT DIY Tomcat 墨盒 setenv.sh 脚本没有获取 OPENSHIFT 变量

C++:Setenv()。 Visual Studio 中的未定义标识符