如何找到 ncurses 应用程序的终端宽度和高度?
问问题
41102 次
5 回答
25
于 2009-11-28T08:19:46.317 回答
14
ncurses 应用程序通常处理SIGWINCH
和使用ioctl
withTIOCGWINSZ
来获取系统的屏幕尺寸概念。这可能会被环境变量LINES
和COLUMNS
(参见参考资料use_env
)覆盖。
鉴于此, ncurses 全局变量LINES
并在返回COLS
时作为副作用更新(响应 a )以给出(代表整个终端的标准屏幕)的大小。wgetch
KEY_RESIZE
SIGWINCH
stdscr
您当然可以使用getmaxx
,getmaxy
和getmaxyx
来获得窗口 x 和 y 坐标的一个或两个限制。只有最后一个是标准的(和便携式的)。
进一步阅读:
于 2016-07-23T00:32:02.900 回答
2
我正在使用这段代码:
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);
于 2014-04-07T08:59:16.110 回答
1
使用SCR_H
and怎么样SCR_W
?
于 2009-11-28T10:26:28.197 回答
1
于 2016-07-27T15:41:37.950 回答