bélyegkép|263px|Egy ncurses felületű segédprogram (YaST csomagkezelő) Az Ncurses egy karaktergrafikus felhasználói felületet biztosító interfész és programkönyvtár. A mögöttes elv, hogy a grafikus, áttekinthető felületet egy terminál lehetőségeivel jelenítse meg. Segítségével keretek és ablakok, valamint fejlécek jeleníthetőek meg. Ennek oka, hogy egyes esetekben grafikus felület nem áll rendelkezésre, viszont a program kezeléséhez célszerű valamilyen menüszerű rendszert használni. A leggyakoribb példa a számítógépes szerverek működése.

Eredetileg a BSD 4.4-es verziójában található, abbahagyott curses felület megújításaként született, erre utal az „n” betű a nevében.

Története Amikor a vi szövegszerkesztő készült a korai BSD rendszerekhez, a képernyő kezelését a termcap adatbázisra alapuló eljárások képezték. Ezeket később összevonták, ez lett a curses könyvtár, amit a Kaliforniai Egyetem Berkeley-i kampuszának hallgatói készítettek. Az első kiadást 1980 végén, a 4.0BSD rendszerrel jelentették meg.

Miután végzett, az egyik a hallgatók közül a termcap könyvtárt terminfo néven javította, majd a curses könyvtárat adaptálta. Ez a javított változat 1984 elején került a nagyközönség elé. 1986 végén aztán egy alaposan feljavított curses-változat került a BSD rendszerekbe, ami majd tíz éven keresztül szolgálta a fejlesztőket.

A 90-es évek elején a curses kezdett egyre inkább problémássá válni, különösen a C++ megjelenésével. Ennek érdekében szinte teljes egészében újraírták, ez lett az ncurses, azaz new curses. 1995-ben aztán a curses fejlesztése lezárult, a fejlesztők mindenkinek az ncurses-re való áttérést javasolták. Jelenleg az egyik legelterjedtebb TUI felület, számtalan alapvető szoftver használja.

Programok ncurses felülettel Nagyon sok programban találkozhatunk az ncurses felülettel, a teljesség igénye nélkül néhány: Midnight Commander fájlkezelő; tig előtétprogram a git verziókezelő rendszerhez; Nano szövegszerkesztő program; Alpine e-mail kliens; Nethack kalandjáték; YaST csomagkezelő; Aptitude csomagkezelő.

Példaprogramok Az ncurses segítségével változatos programok készíthetőek. Alább néhány egyszerű példával szemléltetjük ezt.

Helló világ!

#include <curses.h> //Ez az ncurses fejlécfájlja #include <stdio.h> //A standard ki/bemeneti fejléc #include <stdlib.h> //Néhány apróság miatt #include <unistd.h> //A sleep() függvény miatt #include <locale.h> //Ékezetes betűk - UTF-8

int main(void) { WINDOW * mainwin; //Egy ablak létrehozása char * locale; //Az ékezetes betűk miatt

mainwin = initscr(); //Inicializáljuk az ablakot locale = setlocale( LC_ALL, "" ); //Inicializáljuk a betűket

mvaddstr( 13, 33, "Hello világ!" ); //Nagyjából a képernyő közepére (13. sor, 33. oszlop) kiírjuk a szöveget refresh(); //Az ablakban jelenjen is meg a felirat sleep(4); //Várunk egy picit delwin(mainwin); //Töröljük az ablakot endwin(); //Be is fejezzük refresh(); //Tudjon is róla

return EXIT_SUCCESS; //Sikeresek voltunk

Megjegyzések

Hivatkozások

Kapcsolódó szócikkek C programozási nyelv C++ programozási nyelv Terminál

Kategória:GNU projektek