如何找到ncurses应用程序的终端宽度和高度?
void getmaxyx(WINDOW *win, int y, int x);
我相信…
另外,这可能会有所帮助……
在C中获得终端宽度?
ncurses应用程序通常处理SIGWINCH
并使用带有TIOCGWINSZ
的ioctl
来获取系统SIGWINCH
的概念。 这可能被环境变量LINES
和COLUMNS
覆盖(参见use_env
)。
鉴于此,当wgetch
返回KEY_RESIZE
(响应SIGWINCH
)以给出stdscr
的大小(表示整个终端的标准屏幕)时,ncurses全局变量LINES
和COLS
被更新为副作用。
您当然可以使用getmaxx
, getmaxy
和getmaxyx
来获取窗口的x和y坐标的一个或两个限制。 只有最后一个是标准的(和便携式)。
进一步阅读:
我正在使用此代码:
struct winsize size; if (ioctl(0, TIOCGWINSZ, (char *) &size) < 0) printf("TIOCGWINSZ error"); printf("%d rows, %d columnsn", size.ws_row, size.ws_col);
那么使用SCR_H
和SCR_W
呢?
在initscr()之后,变量COLS,LINES被初始化为屏幕尺寸。
来源: NCURSES编程HOWTO
我不确定他们是否会在resize时获得更新。
以上就是c/c++开发分享ncurses终端大小相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/560625.html