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

# [NAME](#NAME)

**addstr**, **waddstr**, **mvaddstr**, **mvwaddstr**, **addnstr**, **waddnstr**, **mvaddnstr**, **mvwaddnstr** - add a string to a *curses* window and advance the cursor

# [SYNOPSIS](#SYNOPSIS)

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

```
int addstr(const char * str);
int waddstr(WINDOW * win, const char * str);
int mvaddstr(int y, int x, const char * str);
int mvwaddstr(WINDOW * win, int y, int x, const char * str);
```

```
int addnstr(const char * str, int n);
int waddnstr(WINDOW * win, const char * str, int n);
int mvaddnstr(int y, int x, const char * str, int n);
int mvwaddnstr(WINDOW * win, int y, int x, const char * str, int n);
```

# [DESCRIPTION](#DESCRIPTION)

**waddstr** writes the characters of the (null-terminated) string *str* to the window *win*, as if by calling [**waddch**(3X)](/man/os/ncurses/waddch.3X) for each *char* in *str*. **waddnstr** is similar, but writes at most *n* characters. If *n* is -1, **waddnstr** writes the entire string. [**ncurses**(3X)](/man/os/ncurses/ncurses.3X) describes the variants of these functions.

# [RETURN VALUE](#RETURN_VALUE)

These functions return **OK** on success and **ERR** on failure.

In *ncurses*, these functions fail if

- the *curses* screen has not been initialized,
- *str* is a null pointer,
- (for functions taking a *WINDOW* pointer argument) *win* is a null pointer, or
- an internal [**waddch**(3X)](/man/os/ncurses/waddch.3X) call returns **ERR**.

Functions prefixed with “mv” first perform cursor movement and fail if the position (*y*, *x*) is outside the window boundaries.

# [NOTES](#NOTES)

All of these functions except **waddnstr** may be implemented as macros.

# [PORTABILITY](#PORTABILITY)

X/Open Curses Issue 4 describes these functions. It specifies no error conditions for them.

SVr4 describes a successful return value only as “an integer value other than *ERR*”.

# [HISTORY](#HISTORY)

4BSD (1980) introduced *waddstr* along with its variants, the latter defined as macros.

SVr3.1 (1987) added *waddnstr* (and its variants) redefining *waddstr* as a macro wrapping it.

# [SEE ALSO](#SEE_ALSO)

[**curs\_addwstr**(3X)](/man/os/ncurses/curs_addwstr.3X) describes comparable functions of the *ncurses* library in its wide-character configuration (*ncursesw*).

[**curses**(3X)](/man/os/ncurses/curses.3X), [**curs\_addch**(3X)](/man/os/ncurses/curs_addch.3X), [**curs\_addchstr**(3X)](/man/os/ncurses/curs_addchstr.3X)

2025-10-20 ncurses 6.6

---

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