curs_window, delwin, derwin, dupwin, mvderwin, mvwin, newwin, subwin,
syncok, wcursyncup, wsyncdown, wsyncup - Routines that create Curses
WINDOW *win ); WINDOW *derwin(
int begin_x ); WINDOW *dupwin(
WINDOW *win ); int mvderwin(
int par_x ); int mvwin(
int x ); WINDOW *newwin(
int begin_x ); WINDOW *subwin(
int begin_x ); int syncok(
bool bf ); void wcursyncup(
WINDOW *win ); void wsyncdown(
WINDOW *win ); void wsyncup(
WINDOW *win );
Curses Library (libcurses)
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
delwin, derwin, mvderwin, dupwin, mvwin, newwin, subwin, syncok,
wcursyncup, wsyncdown, wsyncup: XCURSES4.2
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
The newwin routine creates and returns a pointer to a new window with
the given number of lines, nlines, and columns, ncols. The upper left-
hand corner of the window is at line begin_y and column begin_x. If
nlines is zero, it defaults to (LINES - begin_y); if ncols is zero, it
defaults to (COLS - begin_x). Applications create a new full-screen
window by calling newwin(0,0,0,0).
The newwin routine must not create a window larger than the physical
size of the screen, or the size defined by using the environment vari‐
ables LINES and COLUMNS. Use pads rather than windows whenever the
application requires a window larger than the terminal screen. See
curs_pad(3) for information about functions that create and manipulate
The delwin routine deletes the named window, freeing all memory associ‐
ated with it. Applications must delete subwindows before deleting the
The mvwin routine moves the window so that the upper left-hand corner
is at position (x, y). If the move would cause the window to be off the
screen, it is an error and the window is not moved. Moving subwindows
is allowed, but should be avoided.
The subwin routine creates and returns a pointer to a new window with
the given number of lines, nlines, and columns, ncols. The window is at
position (begin_y, begin_x) on the screen. (This position is relative
to the screen, and not to the window orig.) The routine makes the sub‐
window in the middle of the window orig, so that changes made to one
window affect both windows. The subwindow shares memory with the window
orig. When using subwin, applications must call touchwin or touchline
on window orig before calling wrefresh on the subwindow.
The derwin routine is the same as subwin, except that begin_y and
begin_x are relative to the origin of the window orig rather than to
the origin of the screen. There is no other difference between subwin‐
dows created by subwin and derived windows created by derwin.
The mvderwin routine moves a derived window (or a subwindow) inside its
parent window. The screen-relative parameters of the window are not
changed. Applications use this routine to display different parts of
the parent window at the same physical position on the screen.
The dupwin routine creates an exact duplicate of the window win.
Each Curses window maintains two data structures: the character image
structure and the status structure. The character image structure is
shared among all windows in the window hierarchy (that is, the original
window and all associated subwindows). The status structure, which con‐
tains information about individual line changes in the window, is pri‐
vate to each window. The wrefresh routine uses the status data struc‐
ture when performing screen updating. Since status structures are not
shared, changes made to one window in the hierarchy may not be properly
reflected on the screen.
The wsyncup routine causes the changes in the status structure of a
window to be reflected in the status structures of its ancestors. If
the application calls syncok with TRUE as the second parameter, then
Curses calls wsyncup automatically whenever there is a change in the
The wcursyncup routine updates the current cursor position of all the
ancestors of the specified window to reflect the current cursor posi‐
tion of the specified window.
The wsyncdown routine updates the status structure of the specified
window to reflect the changes in the status structures of its ances‐
tors. Applications seldom call this routine because it is called auto‐
matically by wrefresh.
The header file <curses.h> automatically includes the header file
If many small changes are made to a window, using wsyncup can degrade
Routines that return an integer return the integer ERR upon failure and
OK upon successful completion.
Routines that return pointers return NULL on error.
Functions: curses(3), curs_refresh(3), curs_touch(3)