gpt4 book ai didi

c - getenv 不适用于 COLUMNS 和 LINES

转载 作者:太空狗 更新时间:2023-10-29 15:26:41 26 4
gpt4 key购买 nike

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

...

char *cols = getenv("COLUMNS");
printf("cols: %s\n", cols);

char *lines = getenv("LINES");
printf("lines: %s\n", lines);

...

问题是,当我运行它时,两者都为空。使用其他环境变量(例如 PATHUSER)运行它,效果很好。

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

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

最佳答案

COLUMNSLINES 由 shell 设置,但不导出,这意味着它们不会添加到随后执行的命令的环境中。(要验证这一点,请检查 /usr/bin/env 的输出:它将显示 PATHUSER,但不会显示 COLUMNS LINES。)

在 bash shell 中,您可以调用 export VAR 来标记要导出的变量。

或者,参见 Getting terminal width in C?了解以编程方式获取终端宽度和高度的各种方法。

关于c - getenv 不适用于 COLUMNS 和 LINES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22588272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com