CURSES(3) Library Functions Manual CURSES(3)


cursesscreen functions with “optimal” cursor motion


Curses Library (libcurses, -lcurses)


cc [flags] files -lcurses [libraries]


These routines give the user a method of updating screens with reasonable optimization. They keep an image of the current screen, and the user sets up an image of a new one. Then the refresh() tells the routines to make the current screen look like the new one. In order to initialize the routines, the routine initscr() must be called before any of the other routines that deal with windows and screens are used. The routine endwin() should be called before exiting. The routine start_color() must be called before any of the other routines that deal with color are used.


Function Name Manual Page Name
addch curses_addch(3)
addchnstr curses_addchstr(3)
addchstr curses_addchstr(3)
addnstr curses_addstr(3)
addstr curses_addstr(3)
assume_default_colors curses_default_colors(3)
attr_get curses_attributes(3)
attr_off curses_attributes(3)
attr_on curses_attributes(3)
attr_set curses_attributes(3)
attroff curses_attributes(3)
attron curses_attributes(3)
attrset curses_attributes(3)
baudrate curses_tty(3)
beep curses_tty(3)
bkgd curses_background(3)
bkgdset curses_background(3)
border curses_border(3)
box curses_border(3)
can_change_color curses_color(3)
cbreak curses_tty(3)
chgat curses_chgat(3)
clear curses_clear(3)
clearok curses_clear(3)
clrtobot curses_clear(3)
clrtoeol curses_clear(3)
color_content curses_color(3)
color_set curses_attributes(3)
copywin curses_window(3)
curs_set curses_tty(3)
def_prog_mode curses_tty(3)
def_shell_mode curses_tty(3)
define_key curses_input(3)
delay_output curses_tty(3)
delch curses_delch(3)
deleteln curses_deleteln(3)
delscreen curses_screen(3)
delwin curses_window(3)
derwin curses_window(3)
doupdate curses_refresh(3)
dupwin curses_window(3)
echo curses_tty(3)
endwin curses_screen(3)
erase curses_clear(3)
erasechar curses_tty(3)
filter curses_screen(3)
flash curses_tty(3)
flushinp curses_tty(3)
flushok curses_refresh(3)
fullname curses_termcap(3)
getattrs curses_attributes(3)
getbegx curses_cursor(3)
getbegy curses_cursor(3)
getbkgd curses_background(3)
getch curses_input(3)
getcurx curses_cursor(3)
getcury curses_cursor(3)
getmaxx curses_cursor(3)
getmaxy curses_cursor(3)
getnstr curses_input(3)
getparx curses_cursor(3)
getpary curses_cursor(3)
getparyx curses_cursor(3)
getstr curses_input(3)
gettmode curses_tty(3)
getwin curses_fileio(3)
getyx curses_cursor(3)
has_colors curses_color(3)
has_ic curses_tty(3)
has_il curses_tty(3)
has_key curses_input(3)
hline curses_line(3)
idcok curses_tty(3)
idlok curses_tty(3)
immedok curses_refresh(3)
inch curses_inch(3)
inchnstr curses_inch(3)
inchstr curses_inch(3)
init_color curses_color(3)
init_pair curses_color(3)
initscr curses_screen(3)
innstr curses_inch(3)
insch curses_insertch(3)
insdelln curses_insdelln(3)
insertln curses_insertln(3)
instr curses_inch(3)
intrflush curses_tty(3)
is_keypad curses_input(3)
is_leaveok curses_refresh(3)
is_linetouched curses_touch(3)
is_pad curses_pad(3)
is_term_resized curses_screen(3)
is_wintouched curses_touch(3)
isendwin curses_screen(3)
keyname curses_keyname(3)
keyok curses_input(3)
keypad curses_input(3)
killchar curses_tty(3)
leaveok curses_tty(3)
meta curses_tty(3)
move curses_cursor(3)
mvaddch curses_addch(3)
mvaddchnstr curses_addchstr(3)
mvaddchstr curses_addchstr(3)
mvaddnstr curses_addstr(3)
mvaddstr curses_addstr(3)
mvchgat curses_chgat(3)
mvcur curses_cursor(3)
mvderwin curses_window(3)
mvgetnstr curses_input(3)
mvgetstr curses_input(3)
mvhline curses_line(3)
mvinchstr curses_inch(3)
mvinchnstr curses_inch(3)
mvprintw curses_print(3)
mvscanw curses_scanw(3)
mvvline curses_line(3)
mvwaddch curses_addch(3)
mvwaddchnstr curses_addchstr(3)
mvwaddchstr curses_addchstr(3)
mvwaddnstr curses_addstr(3)
mvwaddstr curses_addstr(3)
mvwchgat curses_chgat(3)
mvwgetnstr curses_input(3)
mvwgetstr curses_input(3)
mvwhline curses_line(3)
mvwinchstr curses_inch(3)
mvwinchnstr curses_inch(3)
mvwprintw curses_print(3)
mvwscanw curses_scanw(3)
mvwvline curses_line(3)
napms curses_tty(3)
newpad curses_pad(3)
newterm curses_screen(3)
newwin curses_window(3)
nl curses_tty(3)
nocbreak curses_tty(3)
nodelay curses_input(3)
noecho curses_tty(3)
nonl curses_tty(3)
noqiflush curses_tty(3)
noraw curses_tty(3)
notimeout curses_input(3)
overlay curses_window(3)
overwrite curses_window(3)
pair_content curses_color(3)
pnoutrefresh curses_pad(3)
prefresh curses_pad(3)
printw curses_print(3)
putwin curses_fileio(3)
qiflush curses_tty(3)
raw curses_tty(3)
redrawwin curses_touch(3)
refresh curses_refresh(3)
reset_prog_mode curses_tty(3)
reset_shell_mode curses_tty(3)
resetty curses_tty(3)
resize_term curses_screen(3)
resizeterm curses_screen(3)
ripoffline curses_screen(3)
savetty curses_tty(3)
scanw curses_scanw(3)
scrl curses_scroll(3)
scroll curses_scroll(3)
scrollok curses_scroll(3)
set_escdelay curses_input(3)
set_tabsize curses_screen(3)
set_term curses_screen(3)
setscrreg curses_scroll(3)
setterm curses_screen(3)
slk_attroff curses_slk(3)
slk_attr_off curses_slk(3)
slk_attron curses_slk(3)
slk_attr_on curses_slk(3)
slk_attrset curses_slk(3)
slk_attr_set curses_slk(3)
slk_clear curses_slk(3)
slk_color curses_slk(3)
slk_init curses_slk(3)
slk_label curses_slk(3)
slk_noutrefresh curses_slk(3)
slk_refresh curses_slk(3)
slk_restore curses_slk(3)
slk_set curses_slk(3)
slk_touch curses_slk(3)
slk_wset curses_slk(3)
standend curses_standout(3)
standout curses_standout(3)
start_color curses_color(3)
syncok curses_touch(3)
subpad curses_pad(3)
subwin curses_window(3)
termattrs curses_attributes(3)
timeout curses_input(3)
touchline curses_touch(3)
touchoverlap curses_touch(3)
touchwin curses_touch(3)
typeahead curses_tty(3)
unctrl curses_print(3)
underend curses_underscore(3)
underscore curses_underscore(3)
ungetch curses_input(3)
untouchwin curses_touch(3)
use_default_colors curses_default_colors(3)
use_env curses_screen(3)
vline curses_line(3)
waddch curses_addch(3)
waddchnstr curses_addchstr(3)
waddchstr curses_addchstr(3)
waddnstr curses_addstr(3)
waddstr curses_addstr(3)
wattr_get curses_attributes(3)
wattr_off curses_attributes(3)
wattr_on curses_attributes(3)
wattr_set curses_attributes(3)
wattroff curses_attributes(3)
wattron curses_attributes(3)
wattrset curses_attributes(3)
wbkgd curses_background(3)
wbkgdset curses_background(3)
wborder curses_border(3)
wchgat curses_chgat(3)
wclear curses_clear(3)
wclrtobot curses_clear(3)
wclrtoeol curses_clear(3)
wcolor_set curses_attributes(3)
wcursyncup curses_cursor(3)
wdelch curses_delch(3)
wdeleteln curses_deleteln(3)
werase curses_clear(3)
wgetch curses_input(3)
wgetnstr curses_input(3)
wgetstr curses_input(3)
whline curses_line(3)
winch curses_inch(3)
winchnstr curses_inch(3)
winchstr curses_inch(3)
winnstr curses_inch(3)
winsch curses_insertch(3)
winsdelln curses_insdelln(3)
winsertln curses_insertln(3)
winstr curses_inch(3)
wmove curses_cursor(3)
wnoutrefresh curses_refresh(3)
wprintw curses_print(3)
wredrawln curses_touch(3)
wrefresh curses_refresh(3)
wresize curses_window(3)
wscanw curses_scanw(3)
wscrl curses_scroll(3)
wsetscrreg curses_scroll(3)
wstandend curses_standout(3)
wstandout curses_standout(3)
wsyncup curses_touch(3)
wsyncdown curses_touch(3)
wtimeout curses_input(3)
wtouchln curses_touch(3)
wunderend curses_underscore(3)
wunderscore curses_underscore(3)
wvline curses_line(3)


The number of columns in the terminal if set. This is usually automatically configured by querying the kernel.
An integer mask that enables specific debugging traces. Enabled only in the debug build of curses.
A file where to output debugging information. Enabled only in the debug build of curses.
The maximum delay in milliseconds between characters in multi-character keystrokes (such are arrow keys) where the adjacent characters are considered part of the same multi-character sequence. The default is 300 milliseconds.
The number of lines in the terminal if set. is usually automatically configured by querying the kernel.
The number of spaces making up a tab. The default is 8 if not specified by the terminal description.
The terminal type of the current terminal.


ioctl(2), getenv(3), tty(4), terminfo(5)
Ken Arnold, Screen Updating and Cursor Movement Optimization: A Library Package.


The NetBSD Curses library complies with the X/Open Curses specification, part of the Single Unix Specification.


The Curses package appeared in 4.0BSD.


Ken Arnold
Julian Coleman
Brett Lymn
Roy Marples
January 25, 2017 NetBSD-current