如何从C/C++程序中找到终端列的数量

How can I find the number of terminal columns from a C/C++ program?

本文关键字:终端 程序 C++      更新时间:2023-10-16

可能重复:
正在获取C中的端子宽度?

在Linux和OSX上,我的shell报告$COLUMNS具有终端窗口的宽度,调整窗口大小将调整这个shell变量。

但是在我的C/C++程序中,getenv("COLUMNS"(似乎找不到变量。

有人能解释一下吗?或者让我的C++程序计算出它运行的终端的宽度的另一个建议(用于一些帮助消息的换行(?

也许是这样的:

#include <sys/ioctl.h>
#include <stdio.h>
int main()
{
    struct winsize w;
    ioctl(0, TIOCGWINSZ, &w);
    printf("lines %dn", w.ws_row);
    printf("columns %dn", w.ws_col);
    return 0;
}

直接取自:获得C中的端子宽度?