NCurses
ncurses | |
Fejlesztő | Thomas E. Dickey |
Legfrissebb stabil kiadás | 6.5 (stabil verzió, 2024. április 27.)[1] |
Programozási nyelv | C |
Operációs rendszer |
|
Kategória |
|
Licenc | X11 license |
A ncurses weboldala |
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.[2]
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.[* 1]
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.[3]
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;[* 2]
- 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