CURSES(3) | Library Functions Manual | CURSES(3)

# NAME

`curses` —
screen functions with “optimal” cursor motion

# LIBRARY

Curses Library (libcurses, -lcurses)

# SYNOPSIS

`cc` | [flags] files `-lcurses` [libraries]

# DESCRIPTION

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.

# FUNCTIONS

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_insch(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)
mvinsch | curses_insch(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)
mvwinsch | curses_insch(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_insch(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)

# ENVIRONMENT

`COLUMNS`
  The number of columns in the terminal if set. This is usually automatically configured by querying the kernel.
`CURSES_TRACE_MASK`
  An integer mask that enables specific debugging traces. Enabled only in the debug build of curses.
`CURSES_TRACE_FILE`
  A file where to output debugging information. Enabled only in the debug build of curses.
`ESCDELAY`
  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.
`LINES`
  The number of lines in the terminal if set. is usually automatically configured by querying the kernel.
`TABSIZE`
  The number of spaces making up a tab. The default is 8 if not specified by the terminal description.
`TERM`
  The terminal type of the current terminal.

# SEE ALSO

ioctl(2), getenv(3), tty(4), terminfo(5)

Ken Arnold, Screen Updating and Cursor Movement Optimization: A Library Package.

# STANDARDS

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

# HISTORY

The Curses package appeared in 4.0BSD.

# AUTHORS

Ken Arnold
Julian Coleman
Brett Lymn
Roy Marples

October 25, 2018 | NetBSD 9.1