All Topics  
Ncurses

 

   Email Print
   Bookmark   Link






 

Ncurses



 
 
ncurses is a programming library
Library (computer science)

In computer science, a library is a collection of subroutines or Class used to develop software. Libraries contain code and data that provide services to independent programs....
 providing an API
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
, allowing the programmer to write text user interface
Text user interface

TUI short for: Text User Interface or Textual User Interface , is a retronym that was coined sometime after the invention of graphical user interfaces, to distinguish them from Text-based user interfaces....
s in a terminal-independent manner. It's a toolkit for developing "GUI
Gui

Gui or guee is a generic term to refer to grillinged dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients....
-like" app
APP

App is short for application . It could also refer to:*.APP , filename extension for Symbian OS applications*Adjusted Peak Performance, a metric to measure computing performance in 64-bit processors and above...
s which run under a terminal emulator
Terminal emulator

A terminal emulator, terminal application, term, or tty for short, is a program that emulates a "dumb" video Computer terminal within some other display architecture....
. It also optimizes screen changes, in order to reduce the latency
Latency (engineering)

Latency is a time delay between the moment something is initiated, and the moment one of its effects begins or becomes detectable. The word derives from the fact that during the period of latency the effects of an action are latent, meaning "potential" or "not yet observed"....
 experienced when using remote shells
Unix shell

A Unix shell is a command-line interpreter and script host that provides a traditional user interface for the Unix operating system and for Unix-like systems....
.

The project leader is Thomas Dickey
Thomas Dickey

Thomas E. Dickey is a computer programmer. He is best known as the maintainer of various free software applications: Vile , xterm, ncurses, lynx and Dialog . He also maintains many others....
.

History
The "N" in ncurses is an abbreviation of the word "new." This is because ncurses is a free software
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
 emulation (clone) of System V Release 4.0 (SVr4) curses
Curses (programming library)

curses is a Computer display control Library for Unix-like systems, enabling the construction of Text user interface applications.Curses is a wikt:pun on the term "cursor optimization"....
, an enhancement over the discontinued classic 4.4 BSD curses.






Discussion
Ask a question about 'Ncurses'
Start a new discussion about 'Ncurses'
Answer questions from other users
Full Discussion Forum



Encyclopedia


ncurses is a programming library
Library (computer science)

In computer science, a library is a collection of subroutines or Class used to develop software. Libraries contain code and data that provide services to independent programs....
 providing an API
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
, allowing the programmer to write text user interface
Text user interface

TUI short for: Text User Interface or Textual User Interface , is a retronym that was coined sometime after the invention of graphical user interfaces, to distinguish them from Text-based user interfaces....
s in a terminal-independent manner. It's a toolkit for developing "GUI
Gui

Gui or guee is a generic term to refer to grillinged dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients....
-like" app
APP

App is short for application . It could also refer to:*.APP , filename extension for Symbian OS applications*Adjusted Peak Performance, a metric to measure computing performance in 64-bit processors and above...
s which run under a terminal emulator
Terminal emulator

A terminal emulator, terminal application, term, or tty for short, is a program that emulates a "dumb" video Computer terminal within some other display architecture....
. It also optimizes screen changes, in order to reduce the latency
Latency (engineering)

Latency is a time delay between the moment something is initiated, and the moment one of its effects begins or becomes detectable. The word derives from the fact that during the period of latency the effects of an action are latent, meaning "potential" or "not yet observed"....
 experienced when using remote shells
Unix shell

A Unix shell is a command-line interpreter and script host that provides a traditional user interface for the Unix operating system and for Unix-like systems....
.

The project leader is Thomas Dickey
Thomas Dickey

Thomas E. Dickey is a computer programmer. He is best known as the maintainer of various free software applications: Vile , xterm, ncurses, lynx and Dialog . He also maintains many others....
.

History


The "N" in ncurses is an abbreviation of the word "new." This is because ncurses is a free software
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
 emulation (clone) of System V Release 4.0 (SVr4) curses
Curses (programming library)

curses is a Computer display control Library for Unix-like systems, enabling the construction of Text user interface applications.Curses is a wikt:pun on the term "cursor optimization"....
, an enhancement over the discontinued classic 4.4 BSD curses. The XSI Curses standard issued by X/Open
X/Open

X/Open Company, Ltd. was a consortium founded by several European UNIX systems manufacturers in 1984 to identify and promote open standards in the field of information technology....
 is explicitly and closely modeled on System V. Development started in 1991 or 1992 using pcurses and was first announced in 1993 as noted on the ncurses
Ncurses

ncurses is a programming library providing an application programming interface, allowing the programmer to write text user interfaces in a terminal-independent manner....
 homepage. An earlier article refers to 1991 (second-hand information) but contains several flaws, e.g., asserting that pcurses was little known (it was distributed in the first volume of the comp.sources.unix newsgroup as noted in the terminfo
Terminfo

Terminfo is a Library and database that enables programs to use display Computer terminals in a device-independent manner. The origins of this library are from the UNIX System III operating system....
 article) and obscuring the connection between BSD and UNIX
Unix

Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
 curses via Mark Horton. The README
README

A readme file contains information about other files in a directory or archive and is very commonly distributed with computer software. Such a file is usually a text file called README.TXT, README.1ST, READ.ME, or simply README, although some Microsoft Windows software may occasionally include a R...
 file in ncurses 1.8.1 states "v0.1 July 31, 1992" and "v1.8.1 Nov 5, 1993", which agrees with the current NEWS file. The ncurses NEWS file gives detailed development information.

Most ncurses calls can be easily ported to the old curses. System V curses implementations can support BSD curses programs with just a recompilation
Compiler

A compiler is a computer program that transforms source code written in a programming language into another computer language . The most common reason for wanting to transform source code is to create an executable program....
. However, a few areas are problematic, such as handling terminal resizing (since no counterpart exists in the old curses).

Terminal database


Ncurses can use either terminfo
Terminfo

Terminfo is a Library and database that enables programs to use display Computer terminals in a device-independent manner. The origins of this library are from the UNIX System III operating system....
 (with extensible data), or termcap
Termcap

Termcap is a software library and database used on Unix-like computers. It enables programs to use display computer terminals in a device-independent manner, which greatly simplifies the process of writing portable text mode applications....
. Other implementations of curses
Curses (programming library)

curses is a Computer display control Library for Unix-like systems, enabling the construction of Text user interface applications.Curses is a wikt:pun on the term "cursor optimization"....
 generally use terminfo
Terminfo

Terminfo is a Library and database that enables programs to use display Computer terminals in a device-independent manner. The origins of this library are from the UNIX System III operating system....
; a minority use termcap
Termcap

Termcap is a software library and database used on Unix-like computers. It enables programs to use display computer terminals in a device-independent manner, which greatly simplifies the process of writing portable text mode applications....
. Few (mytinfo was an older exception) use both.

License

Ncurses is a part of the GNU Project
GNU Project

The GNU Project is a free software, mass collaboration project, announced on September 27 1983 by Richard Stallman. It initiated the GNU operating system, software development for which began in January 1984....
. It is one of the few GNU files not distributed under the GNU GPL
GNU General Public License

The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
 or LGPL
GNU Lesser General Public License

The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License and permissive licenses such as the BSD licenses and the MIT License....
; it is distributed under a permissive free software licence, similar to the MIT License
MIT License

The MIT License is a free software license originating at the Massachusetts Institute of Technology , used by the MIT X Consortium.It is a Permissive_free_software_licence license, meaning that it permits reuse within proprietary software on the condition that the license is distributed with that software....
. This is due to the agreement made with the Free Software Foundation
Free Software Foundation

The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to distribute and modify computer software without restriction....
 at the time the developers assigned their copyright. However, because it is Free Software Foundation
Free Software Foundation

The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to distribute and modify computer software without restriction....
 software, they may choose to GPL it in the future.

Programs using ncurses

There are hundreds of programs which use ncurses. Some, such as GNU Screen
GNU Screen

GNU Screen is a Free software Computer terminal multiplexer developed by the GNU Project since at least 1995. It allows a user to access multiple separate terminal sessions inside a single terminal window or remote terminal session....
 and w3m
W3m

w3m is a free software/open source software text-based web browser. It has support for tables, frames, Secure Sockets Layer connections, color and even inline images on suitable Computer terminal....
, use only the termcap
Termcap

Termcap is a software library and database used on Unix-like computers. It enables programs to use display computer terminals in a device-independent manner, which greatly simplifies the process of writing portable text mode applications....
 interface, performing screen management within the application. Others, such as GNU Midnight Commander and YaST
Yet Another Setup Tool

Yet another Setup Tool , is an RPM Package Manager-based operating system setup and computer configuration tool that is featured in the SUSE Linux distributions Linux distribution, as well as Novell's derived commercial distributions....
 use the curses programming interface.

See also


  • SMG$
    SMG$

    SMG$ is a library of Screen Management routines for OpenVMS. These routines allow programs to create text-based, terminal interfaces in a terminal-independent manner....
     The Screen Management library
    Application programming interface

    An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
     available under OpenVMS
    OpenVMS

    OpenVMS , previously known as VAX-11/VMS, VAX/VMS or VMS, is the name of a high-end computer server operating system that runs on the VAX and DEC Alpha families of computers, developed by Digital Equipment Corporation of Maynard, Massachusetts, Massachusetts , and most recently on Hewlett-Packard systems built around the In...
  • conio
    Conio.h

    conio.h is a header file used in old MS-DOS compilers to create text user interfaces, however, it is not part of the C programming language, the C standard library, ISO C or required by POSIX....
  • Curses Development Kit
  • Dialog (software)
    Dialog (software)

    Dialog is an application used in shell scripts which displays text user interface GUI widget. It uses the curses or ncurses library. The latter provides users with the ability to use a mouse, e.g., in an xterm....


External links

  • Introduction "" by Eric S. Raymond
    Eric S. Raymond

    Eric Steven Raymond , often referred to as ESR, is a computer programmer, author and open source software advocate. His name became known within the hacker culture when he became the maintainer of the "Jargon File"....
     and Zeyd M. Ben-Halim
  • ( and )
  • by Thomas Dickey
    Thomas Dickey

    Thomas E. Dickey is a computer programmer. He is best known as the maintainer of various free software applications: Vile , xterm, ncurses, lynx and Dialog . He also maintains many others....


Toolkits

  • Development Kit for C++


Language bindings



Distributions and packages

  • GnuWin32
    GnuWin32

    The GnuWin32 project provides native Porting in the form of runnable computer programs, patches, and source code for various GNU and open source tools and software, much of it modified to run on the 32-bit Microsoft Windows platform....