---
name: "addchstr"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/addchnstr"
---

# addchstr(3)

add a curses character string to a window

Part of [addchnstr(3)](/addchnstr/3.md).

## NAME

**addchstr**, **waddchstr**, **mvaddchstr**, **mvwaddchstr**, **addchnstr**, **waddchnstr**, **mvaddchnstr**, **mvwaddchnstr** - add a *curses* character string to a window

## SYNOPSIS

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

**int addchstr(const chtype \*** *chstr***);** **int waddchstr(WINDOW \*** *win***, const chtype \*** *chstr***);** **int mvaddchstr(int** *y***, int** *x***, const chtype \*** *chstr***);** **int mvwaddchstr(WINDOW \*** *win***, int** *y***, int** *x***,**\
       **const chtype \*** *chstr***);**

**int addchnstr(const chtype \*** *chstr***, int** *n***);** **int waddchnstr(WINDOW \*** *win***, const chtype \*** *chstr***, int** *n***);** **int mvaddchnstr(int** *y***, int** *x***, const chtype \*** *chstr***, int** *n***);** **int mvwaddchnstr(WINDOW \*** *win***, int** *y***, int** *x***,**\
       **const chtype \*** *chstr***, int** *n***);**

## DESCRIPTION

**waddchstr** **copies the string of** *curses* **characters** *chstr* **to the window** *win*. **A null** *curses* **character terminates the string.** **waddchnstr** **does the same,** **but copies at most** *n* **characters,** **or as many as possible if** *n* **is** **-1**. **ncurses(3X) describes the variants of these functions.**

**Because these functions do not call waddch(3X) internally,** **they are faster than waddstr(3X) and waddnstr(3X).** **On the other hand,** **they**

- •

  **do not treat the backspace,** **carriage return,** **or line feed characters specially;**

- •

  **do not represent unprintable characters with unctrl(3X);**

- •

  **do not update the cursor position to follow the last character written;** **and**

- •

  **truncate the string at the window's right margin,** **rather than wrapping it to the next line and potentially scrolling.**

## 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,**

- •

  *chstr* **is a null pointer,** **or**

- •

  **(for functions taking a** *WINDOW* **pointer argument)** *win* **is a null pointer.**

**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** **waddchnstr** **may be implemented as macros.**

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

**SVr3.1 (1987)** **introduced these functions.**

## SEE ALSO

**curs\_add\_wchstr(3X) describes comparable functions of the** *ncurses* **library in its wide-character configuration** (*ncursesw*).

**curses(3X),** **curs\_addch(3X),** **curs\_addstr(3X)**
