我知道这类问题已经被问了很多次,但似乎没有一个答案有帮助。我在 Ubuntu Linux 中通过 setenv()
函数调用设置环境变量。但是,该程序似乎没有使用此环境变量。如果我使用 getenv() 它会获得正确的值,但程序的输出是错误的。但是,当我在 shell 中使用 export BLOCKSIZE=512
时,程序的输出是正确的。我不会从程序中生成不同的进程。下面只是我正在做的代码片段,它不是我的整个程序。
这有什么原因吗?
最佳答案
这里的问题是 Ubuntu Linux 的默认 BLOCKSIZE
为 1024
而不是 512
。因此,在计算 stat
结构中的 block (即 st_blocks
字段)时,我收到了与正常 ls
不同的答案,因为在 >stat
block 仅以 512 字节 block 计算。这意味着我的程序不必考虑环境变量的大小。这里的主要问题是假设 Linux 使用 512 字节的 block 大小,正如我在教科书中得知的那样。
关于c - C 中的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12557712/