https://invisible-island.net/ncurses/man/


curs_getyx 3x 2026-03-14 ncurses 6.6 Library calls

curs_getyx(3x)                   Library calls                  curs_getyx(3x)


NAME

       getyx,  getparyx,  getbegyx,  getmaxyx  -  get curses cursor and window
       coordinates


SYNOPSIS

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


DESCRIPTION

       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
       dimensions in y and x, respectively.   Those  are  one  more  than  the
       corresponding   maximum   positions.   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(3x)), 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 curs_legacy(3x).

       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.


HISTORY

       4BSD (1980) introduced getyx.

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


SEE ALSO

       curses(3x), curs_legacy(3x), curs_opaque(3x)

ncurses 6.6                       2026-03-14                    curs_getyx(3x)