In C programming, curses is a collection of precompiled routine s stored as object s for text-based terminals that is used to create similarity of function. Curses probably gets its name from its purpose of providing a common user interface for terminal-specific initiation of cursor movement.
Terminals frequently use different ways to initiate particular cursor movements. For example, to make the cursor move up a line, a VT100 terminal has to send the characters "Esc," "]" and "A," while a Televideo 920C terminal has to send "CTRL-K." This could get terribly complicated if programmers had to write separate versions for every terminal. Another problem is that the same tasks would have to be redone every time a program that depended on cursor action was written. The curses library contains function s that a program calls to send the desired cursor action characters. The program doesn't have to contain information about the proper characters but just uses a simple-to-understand syntax (e.g.: "clear()" will clear the screen).
Curses hides the particular screen details of different terminals from the programmer, who sees a display containing multiple non-overlapping windows. Window contents can be changed in a fairly straight-forward manner and the curses library will be behind the scenes, working away doing whatever is necessary to get the desired message through - with the least possible stress to the programmer. The ncurses (new curses) library is a freely distributable replacement for the discontinued 4.4BSD classic curses library.