首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ncurses终端大小

ncurses终端大小
EN

Stack Overflow用户
提问于 2009-11-28 16:11:36
回答 5查看 39.6K关注 0票数 17

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-11-28 16:19:46

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

此外,这可能会有所帮助。

Getting terminal width in C?

票数 21
EN

Stack Overflow用户

发布于 2016-07-23 08:32:03

ncurses应用程序通常处理SIGWINCH,并使用带有TIOCGWINSZioctl来获取系统的屏幕大小概念。它可以被环境变量LINESCOLUMNS (参见use_env)覆盖。

鉴于此,当wgetch返回KEY_RESIZE (响应SIGWINCH)时,ncurses全局变量LINESCOLS会更新为stdscr的大小(代表整个终端的标准屏幕)。

当然,您可以使用getmaxxgetmaxygetmaxyx来获取窗口的x和y坐标的一个或两个限制。只有最后一个是标准的(并且是可移植的)。

进一步阅读:

  • Handling SIGWINCH (resize events) (ncurses FAQ)
  • , , — change the curses terminal size
票数 12
EN

Stack Overflow用户

发布于 2014-04-07 16:59:16

我使用的是以下代码:

代码语言:javascript
复制
struct winsize size;
if (ioctl(0, TIOCGWINSZ, (char *) &size) < 0)
    printf("TIOCGWINSZ error");
printf("%d rows, %d columns\n", size.ws_row, size.ws_col);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1811955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档