getmaxyx(3ncurses)

getmaxyx3ncurses

Get curses cursor and window coordinates

Part of getyx(3ncurses).

Usage

#include <curses.h>

void getyx(WINDOW *win, int y, int x); void getbegyx(WINDOW *win, int y, int x); void getmaxyx(WINDOW *win, int y, int x);

void getparyx(WINDOW *win, int y, int x);

Overview

These macros obtain the cursor position and bounds information of a curses window win. getyx stores win's cursor position in the variables y and x. getmaxyx stores win's maximum valid line and column numbers in y and x, respectively. getbegyx similarly stores the position of win's origin relative to that of the screen (for stdscr, these coordinates are always 0).

If win is a subwindow (see subwin(3NCURSES)), the getparyx macro places the coordinates of its origin relative to its parent window into y and x, and -1 into both if it is not.

Return value

No return values are defined for macros. Do not use them as the right-hand side of assignment statements.

Notes

All of these interfaces are implemented as macros. An “&” operator is not necessary before the variables y and x.

Portability

These macros are described in X/Open Curses Issue 4.

ncurses also provides functions getbegy, getbegx, getcury, getcurx, getmaxy, getmaxx, getpary, and getparx for compatibility with System V curses that were not standardized; see legacy(3NCURSES).

Although X/Open Curses does not address the issue, many implementations expose members of the WINDOW structure containing values corresponding to these macros. Do not rely on their availability; some implementations make WINDOW opaque (that is, they do not allow direct access to its members).

Besides the problem of opaque structures, the data stored in like-named members may not have values of the same meaning across different implementations. For example, the values of WINDOW._maxx and WINDOW._maxy in ncurses have long differed by one from some other implementations. The getmaxyx macro hides this difference.

Releases

12 releases since Debian 3.0 (Woody); the text changed 7 times.

  1. 3.0
  2. 3.1
  3. 4.0
  4. 5.0–6.0
  5. 7–10
  6. 11
  7. 12
  8. 13

History

4BSD (1980) introduced getyx.

SVr3 (1987) added getbegyx and getmaxyx. SVr3.1 later that year supplied getparyx.

From ncurses-doc 6.5+20250216-2 in Debian 13 (Trixie). Parsed by carta from the page's man source.