curs\_legacy(3X) Library calls curs\_legacy(3X)

# [NAME](#NAME)

**getattrs**, **getbegx**, **getbegy**, **getcurx**, **getcury**, **getmaxx**, **getmaxy**, **getparx**, **getpary** - get *curses* cursor and window coordinates or attributes (legacy)

# [SYNOPSIS](#SYNOPSIS)

```
#include <curses.h>
```

```
int getattrs(const WINDOW *win);
```

```
int getbegx(const WINDOW *win);
int getbegy(const WINDOW *win);
```

```
int getcurx(const WINDOW *win);
int getcury(const WINDOW *win);
```

```
int getmaxx(const WINDOW *win);
int getmaxy(const WINDOW *win);
```

```
int getparx(const WINDOW *win);
int getpary(const WINDOW *win);
```

# [DESCRIPTION](#DESCRIPTION)

These legacy functions are simpler to use than the X/Open *curses* functions:

•

The **getattrs** function returns the same attribute data as **wattr\_get**.

However, **getattrs** returns an integer (actually a **chtype**), while **wattr\_get** returns the current color pair in a separate parameter. In the wide-character library configuration, color pairs may not fit into a **chtype**, so **wattr\_get** is the only way to obtain the color information.

Because **getattrs** returns the attributes in a single parameter, it would not be possible for an application to distinguish that from **ERR** (a *-1*). If the window parameter is null, **getattrs** returns **A\_NORMAL** (zero).

- The **getbegy** and **getbegx** functions return the same data as **getbegyx**.
- The **getcury** and **getcurx** functions return the same data as **getyx**.
- The **getmaxy** and **getmaxx** functions return the same data as **getmaxyx**.
- The **getpary** and **getparx** functions return the same data as **getparyx**.

# [RETURN VALUE](#RETURN_VALUE)

Except as noted, these functions return an integer, or **ERR** if the window parameter is null.

# [PORTABILITY](#PORTABILITY)

BSD and System V *curses* did not check the pointer-to-*WINDOW* parameter for validity.

The **getattrs** function and macro are defined to return a (signed) integer for compatibility with those implementations although an unsigned type would have been more appropriate.

# [SEE ALSO](#SEE_ALSO)

[**curses**(3X)](/man/os/ncurses/curses.3X), [**curs\_getyx**(3X)](/man/os/ncurses/curs_getyx.3X), [**curs\_opaque**(3X)](/man/os/ncurses/curs_opaque.3X)

2026-09-19 ncurses 6.6

---

Document: getmaxx(3x) from ncurses 6.6.20260926-r0 (Chainguard OS)
Source: https://github.com/ThomasDickey/ncurses-snapshots
