如何找到ncurses应用程序的终端宽度和高度?
发布于 2009-11-28 16:19:46
发布于 2016-07-23 08:32:03
ncurses应用程序通常处理SIGWINCH,并使用带有TIOCGWINSZ的ioctl来获取系统的屏幕大小概念。它可以被环境变量LINES和COLUMNS (参见use_env)覆盖。
鉴于此,当wgetch返回KEY_RESIZE (响应SIGWINCH)时,ncurses全局变量LINES和COLS会更新为stdscr的大小(代表整个终端的标准屏幕)。
当然,您可以使用getmaxx、getmaxy和getmaxyx来获取窗口的x和y坐标的一个或两个限制。只有最后一个是标准的(并且是可移植的)。
进一步阅读:
发布于 2014-04-07 16:59:16
我使用的是以下代码:
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);https://stackoverflow.com/questions/1811955
复制相似问题