gpt4 book ai didi

C++ 调用 getenv ("LINES") 或 getenv ("COLUMNS") 在 Xcode 中运行良好,在终端中运行时出现段错误

转载 作者:行者123 更新时间:2023-11-28 07:01:32 27 4
gpt4 key购买 nike

我正在尝试获取我的程序在终端中运行时的窗口大小。在 Xcode 中,我编辑了方案,以便设置 LINESCOLUMNS 环境变量以在 Xcode 中运行,并且它在那里运行良好。但是,当我单击“产品”下的可执行文件并尝试在终端中运行它时,它会出现段错误。知道我做错了什么吗?跟我的#includes有关系吗?这是我的基本代码:

#include <iostream>

using namespace std ;

int main(int argc, const char * argv[]) {

char* r = getenv("COLUMNS") ;

cout << r << endl ;

return 0;
}

最佳答案

如果它在终端中出现段错误,几乎可以肯定是因为环境变量不存在,因此 r 将为 NULL。所以你的程序最好检查一下:

#include <iostream>
#include <cstdlib>

int main (int argc, const char * argv[]) {
char *r = std::getenv ("COLUMNS");
std::cout << ((r == NULL) ? "?" : r) << '\n';
return 0;
}

从终端运行以下命令,看看会得到什么:

echo "!$COLUMNS!"

如果是 !!,您需要弄清楚如何设置变量(并导出以便它们出现在子进程中),例如:

COLUMNS=$(tput cols)
export COLUMNS

关于C++ 调用 getenv ("LINES") 或 getenv ("COLUMNS") 在 Xcode 中运行良好,在终端中运行时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22398512/

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