curs_getyx(3X)

πŸŽ€ NAME πŸŽ€

okay bestie, welcome to curs_getyx(3X) β€” the Library calls page that's literally all about grabbing cursor and window coordinates. The star lineup is getyx, getparyx, getbegyx, and getmaxyx, and their whole job is: get curses cursor and window coordinates. no cap πŸ’…

  • 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 are your little coordinate besties for a curses window, win. They obtain the cursor position and bounds information of it, and honestly they ate:

  • 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).
  • getparyx β€” if win is a subwindow (see subwin(3X)), this 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 πŸ’…

🚨 bestie, no return values are defined for macros. Do not use them as the right-hand side of assignment statements. that's the whole warning, periodt.


πŸŽ€ NOTES πŸŽ€

All of these interfaces are implemented as macros. An & operator is not necessary before the variables y and x. the way that saves you from typing one whole character 😌✨


🌈 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.
lowkey iconic that one macro is out here hiding implementation drama for you 🫢

πŸ“ 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)

πŸ’– that's the whole page, bestie β€” brought to you by ncurses 6.6, dated 2026-03-14, and filed under curs_getyx(3X). mwah πŸ’…βœ¨

πŸ“¦ where this page comes from