ncurses终端大小

Dyl*_*anJ 15 c ncurses

如何找到ncurses应用程序的终端宽度和高度?

mtv*_*vee 17

void getmaxyx(WINDOW *win, int y, int x); 我相信...

另外,这可能会有所帮助......

在C中获得终端宽度?

  • @ afr0ck正如您的引述所言,这些都是宏,因此`y`和`x`不必是指针。该宏直接作用于给定的变量,不需要复制分配或指针。 (2认同)

Tho*_*key 8

ncurses应用程序通常处理SIGWINCH并使用ioctlwith TIOCGWINSZ来获取系统屏幕大小的概念.这可能被环境变量LINESCOLUMNS(参见use_env)覆盖.

鉴于此,ncurses全局变量LINESCOLSwgetch返回时KEY_RESIZE(响应a SIGWINCH)更新为副作用,以给出stdscr(表示整个终端的标准屏幕)的大小.

您当然可以使用getmaxx,getmaxygetmaxyx获得窗口的x和y坐标的一个或两个限制.只有最后一个是标准的(和便携式).

进一步阅读: