---
name: "mvin_wchnstr"
section: "3x"
platform: "linux"
package: "ncurses"
version: "6.6-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/curs_in_wchstr/3x"
---

# mvin\_wchnstr(3x)

get a curses complex character string from a window

Part of [curs\_in\_wchstr(3x)](/curs_in_wchstr/3x.md).

## NAME

**in\_wchstr**, **in\_wchnstr**, **win\_wchstr**, **win\_wchnstr**, **mvin\_wchstr**, **mvin\_wchnstr**, **mvwin\_wchstr**, **mvwin\_wchnstr** - get a *curses* complex character string from a window

## SYNOPSIS

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

**int in\_wchstr(cchar\_t \*** *wchstr***);** **int win\_wchstr(WINDOW \*** *win***, cchar\_t \*** *wchstr***);** **int mvin\_wchstr(int** *y***, int** *x***, cchar\_t \*** *wchstr***);** **int mvwin\_wchstr(WINDOW \*** *win***, int** *y***, int** *x***, cchar\_t \*** *wchstr***);**

**int in\_wchnstr(cchar\_t \*** *wchstr***, int** *n***);** **int win\_wchnstr(WINDOW \*** *win***, cchar\_t \*** *wchstr***, int** *n***);** **int mvin\_wchnstr(int** *y***, int** *x***, cchar\_t \*** *wchstr***, int** *n***);** **int mvwin\_wchnstr(WINDOW \*** *win***, int** *y***, int** *x***, cchar\_t \*** *wchstr***, int** *n***)**

## DESCRIPTION

**win\_wchstr** **extracts a** *curses* **complex character string from a** *curses* **window** *win*, **starting at the cursor and stopping at the end of the line,** **and stores it in** *wchstr*, **terminating it with a wide null** *curses* **character.** **win\_wchnstr** **does the same,** **but copies at most** *n* *curses* **complex characters from** *win*. **A negative** *n* **implies no limit;** **win\_wchnstr** **then works like** **win\_wchstr**. **ncurses(3X) describes the variants of these functions.**

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

- •

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

- •

  *wchstr* **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** **win\_wchnstr** **may be implemented as macros.**

**Reading a line that overflows the array pointed to by** *wchstr* **and its variants causes undefined results.** **Instead,** **use the** *n*-infixed **functions with a positive** *n* **argument no larger than the size of the buffer backing** *wchstr*.

## PORTABILITY

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

## HISTORY

**X/Open Curses Issue 4 (1995) initially specified these functions.** **The System V Interface Definition Version 4** **of the same year** **specified a function named** *winwchstr* **(and the usual variants).** **This was a later addition to** SVr4.*x*, **not appearing in the first SVr4 (1989).** **It differed from X/Open's later** *win\_wchstr* **in that it took an argument of type** pointer-to-*chtype* **instead of** pointer-to-*cchar\_t*.

## SEE ALSO

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

**curses(3X),** **curs\_inwstr(3X),** **curs\_in\_wch(3X)**
