开发者

ncurses terminal size

How do I find the terminal width & height of an ncurses 开发者_开发问答application?


void getmaxyx(WINDOW *win, int y, int x); i believe...

also, this may help...

Getting terminal width in C?


ncurses applications normally handle SIGWINCH and use the ioctl with TIOCGWINSZ to obtain the system's notion of the screensize. That may be overridden by the environment variables LINES and COLUMNS (see use_env).

Given that, the ncurses global variables LINES and COLS are updated as a side-effect when wgetch returns KEY_RESIZE (in response to a SIGWINCH) to give the size of stdscr (the standard screen representing the whole terminal).

You can of course use getmaxx, getmaxy and getmaxyx to get one or both of the limits for the x- and y-ordinates of a window. Only the last is standard (and portable).

Further reading:

  • Handling SIGWINCH (resize events) (ncurses FAQ)
  • is_term_resized, resize_term, resizeterm — change the curses terminal size


i'm using this code:

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);


What about using SCR_H and SCR_W?


the variables COLS, LINES are initialized to the screen sizes after initscr().

Source: NCURSES Programming HOWTO

I'm not sure if they get updated on resize though.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜