EnzoFerber
(usa FreeBSD)
Enviado em 15/01/2016 - 08:30h
Olá.
Você pode fazer sem a
NCurses, sim. Dá uma lida nesse HowTo:
http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/intro.html
(Especialmente as duas primeiras pequenas partes,
1. Introduction e
1.1. What is NCurses?)
(...)
1.1. What is NCURSES?
You might be wondering, what the import of all this technical gibberish is. In the above scenario, every application program is supposed to query the terminfo and perform the necessary stuff (sending control characters etc.). It soon became difficult to manage this complexity and this gave birth to 'CURSES'. Curses is a pun on the name "cursor optimization". The Curses library forms a wrapper over working with raw terminal codes, and provides highly flexible and efficient API (Application Programming Interface). It provides functions to move the cursor, create windows, produce colors, play with mouse etc. The application programs need not worry about the underlying terminal capabilities.
(...)
Você pode utilizar a
termios (
http://linux.die.net/man/3/termios ) e escrever o código todo a mão. Mas isso vai fazer com que seja menos portável e, acima de tudo, você estará reinventando a roda - o que não é uma das melhores práticas que você pode adotar em programação. A
NCurses foi projetada para rodar em quaisquer emuladores de terminais encontrados no Linux, é portável e suportada (acredito eu) pela maior parte das distribuições Linux. Há algum motivo para não querer utilizá-la?
O importante a se ter em mente é que a
NCurses é uma abstração. Como toda (boa) abstração, ela vai tornar sua vida mais fácil ao manipular os terminais, escondendo todos os pequenos e sinuosos detalhes, a um pequeno custo (overhead)
justo. Se isso é um projeto de aprendizado, vá fundo e aprenda tudo sobre o
termios e afins, reescreva todas as rotinas, etc. Mas se for um produto a ser distribuído, utilize a biblioteca. Será
muito mais fácil dar manutenção ao código daqui algum tempo. Mais recursos sobre ela no manual:
http://linux.die.net/man/3/ncurses
Acho que já vi uns artigos aqui no VoL sobre ela...
Espero ter ajudado,
Enzo Ferber
[]'s
$ indent -kr -i8 src.c
"(...)all right-thinking people know that (a) K&R are _right_ and (b) K&R are right." - linux/Documentation/CodingStyle - TORVALDS, Linus.