---
name: "addwstr"
section: "3ncurses"
platform: "linux"
package: "ncurses-doc"
version: "6.5+20250216-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/addwstr/3ncurses"
---

# addwstr(3ncurses)

add a wide-character string to a curses window and advance the cursor

## NAME

**addwstr**, **waddwstr**, **mvaddwstr**, **mvwaddwstr**, **addnwstr**, **waddnwstr**, **mvaddnwstr**, **mvwaddnwstr** - add a wide-character string to a *curses* window and advance the cursor

## SYNOPSIS

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

**int addwstr(const wchar\_t \*** *wstr***);** **int waddwstr(WINDOW \*** *win***, const wchar\_t \*** *wstr***);** **int mvaddwstr(int** *y***, int** *x***, const wchar\_t \*** *wstr***);** **int mvwaddwstr(WINDOW \*** *win***, int** *y***, int** *x***,**\
       **const wchar\_t \*** *wstr***);**

**int addnwstr(const wchar\_t \*** *wstr***, int** *n***);** **int waddnwstr(WINDOW \*** *win***, const wchar\_t \*** *wstr***, int** *n***);** **int mvaddnwstr(int** *y***, int** *x***, const wchar\_t \*** *wstr***, int** *n***);** **int mvwaddnwstr(WINDOW \*** *win***, int** *y***, int** *x***,**\
       **const wchar\_t \*** *wstr***, int** *n***);**

## DESCRIPTION

**waddwstr** **writes the characters of the (wide-null-terminated) wide-character** **string** *wstr* **to the window** *win*, **as if by** **constructing a** *cchar\_t* **for each** *wchar\_t* **in** *wstr*, **then calling wadd\_wch(3NCURSES) with the resulting** *cchar\_t*. *curses* **processes spacing and non-spacing characters in** *wstr* **one at a time.** **waddnwstr** **is similar,** **but writes at most** *n* **wide characters.** **If** *n* **is -1,** **waddnwstr** **writes the entire wide string.** **ncurses(3NCURSES) describes the variants of these functions.**

## RETURN VALUE

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

**In** *ncurses*, **they return** **ERR** **if**

- •

  *win* **is** *NULL*,

- •

  *wstr* **is** *NULL*, **or**

- •

  **an internal wadd\_wch(3NCURSES) call returns** **ERR**.

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

## NOTES

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

## PORTABILITY

**X/Open Curses Issue 4 describes these functions.**

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

## HISTORY

**X/Open Curses Issue 4 (1995) initially specified these functions.** **The System V Interface Definition Version 4** **of the same year** **specified functions named** *waddwstr* **and** *waddnwstr* **(and the usual variants).** **These were later additions to** SVr4.*x*, **not appearing in the first SVr4 (1989).**

## SEE ALSO

**addstr(3NCURSES) describes comparable functions of the** *ncurses* **library in its non-wide-character configuration.**

**ncurses(3NCURSES),** **add\_wch(3NCURSES),** **add\_wchstr(3NCURSES)**
