学习Ncurses:开始开发文本界面

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


Ncurses是一个库,主要用于基于Linux和Unix的操作系统中,该库为各种工具提供了基于文本的可视界面。这意味着使用ncurses的程序可以在支持键盘和鼠标导航的终端窗口中显示类似于GUI的界面。换句话说,它提供了移动光标,创建窗口,产生颜色等功能,而无需直接为任何特定的终端类型编写.

它是System V Release 4.0 curses的克隆版本,根据MIT许可证在“免费的免费软件许可”下免费分发.

Ncurses简史

Ncurses的历史可以追溯到curses。第一个curses库是由加利福尼亚大学伯克利分校开发的,它使用termcap数据库来记录如何控制不同的终端。新库成功发行后,贝尔实验室在其System V Release 2中发布了增强的curses库,该库使用terminfo数据库。但是由于许可限制,该库在BSD社区中并未获得广泛认可.

在80年代初期,Pavel Curtis开始研究Bell Labs库的免费软件克隆,称为pcurses,该库一直保持到1986年。当Zeyd Ben-Halim接手开发工作时,该新库得到了进一步改进,并最终发布为ncurses于1993年11月发布。在随后的几年中,数十个人为ncurses做出了贡献,从而促进了ncurses的积极发展和改进。自1996年以来,Thomas E Dickey一直保持ncurses.

Ncurses已移植到许多系统上,并且几乎在所有基于Linux内核的系统中都使用了Ncurses,因为它是OpenBSD,FreeBSD和OSX上的系统curses库以及Cygwin和MinGW等环境中的.

为什么选择Ncurses?

ncurses库提供了一个健壮的框架,该框架允许程序员以文本模式创建具有视觉吸引力的用户界面。它的功能允许程序员和开发人员创建包含多个窗口,表单,菜单和面板的应用程序,以方便命令选择,数据输入以及处理重叠和堆叠的窗口.

ncurses的一些优点包括:

  • 为用户提供菜单驱动界面的能力
  • 使用复选框,多个子菜单甚至文本输入来选择选项和命令的能力
  • 对于习惯使用图形界面的用户而言,更友好的环境.

使用Ncurses的程序示例

一些使用ncurses的程序包括:

  • GNU Midnight Commander:可视文件管理器.
  • Aptitude:Debian和其他操作系统中使用的APT软件包管理工具的可视化前端.
  • Lynx:基于文本的互联网浏览器.
  • Nvi:新vi,是对传统上随BSD和Unix系统分发的经典vi编辑器的重新实现.
  • Emacs:在许多Unix系统中发现的另一个文本编辑器.

资源资源

下面的资源涵盖了与ncurses相关的一切:从历史到实际示例以及各种编程语言(例如C,Python和PHP)的应用.

  • 官方网站:ncurses官方网站,提供详细概述和下载链接.
  • Ncurses黑客指南:该指南讨论了设计理念,实现方法以及用于编码和文档编制的约定。适用于希望贡献,移植或修改软件包的用户.
  • Ncurses FAQ:由负责ncurses维护的Thomas Dickey提供的详细FAQ。.
  • Ncurses:对ncurses,其历史,发展和功能的非常详尽和全面的概述.
  • Ncurses编程方法:本教程提供有关使用ncurses的全面信息,并指导您编写简单的“ Hello World!”。程序以更复杂的形式进行操作。它没有任何先验经验,并且包含许多详细信息和示例.
  • 如何在Linux上安装Ncurses库:基础和重点教程,说明如何在多个Linux发行版上安装ncurses.
  • 使用ncurses库进行C语言游戏编程:稍微高级一点的教程,它将引导您创建一个简单的模拟球,该球在屏幕上来回反弹.
  • Ncurses终端屏幕控制:有关在PHP中使用ncurses的完整手册.
  • Ncurses初学者库教程:本教程指导您为文本编辑器创建简单的界面.
  • 代码项目:使用Python构建Ncurses用户界面:另一个稍微高级一点的教程,介绍了如何使用Python和ncurses创建用户界面.
  • Ncurses示例:此页面上有几个使用ncurses的简单程序和游戏的示例.
  • 在C中使用Ncurses创建菜单:本教程侧重于使用C编程语言和基本的ncurses函数来创建简单菜单.

图书

几本书详细介绍了ncurses,并提供了有用的参考和示例.

  • Dan Gookin的《程序员对NCurses的指南》(2007年):这本书是ncurses库的直接指南,其中包括对175多个函数的完整引用,这些函数被交叉引用并举例说明.
  • NCurses团队的Guile NCurses库(2015):这本书提供了不同终端的深入概述,并说明了ncurses库如何帮助简化字符单元终端的编程任务.
  • Termcap & Mui,O’Reilly和Strang撰写的Terminfo(O’Reilly Nutshell)(1988):虽然该书未专门涉及ncurses,但它提供了有关termcap和terminfo数据库的有用信息。 Terminfo被ncurses使用,因此本书是上述书籍的绝佳伴侣,因为它提供了termcap和terminfo的功能和语法,编写和调试终端说明以及终端初始化的示例。.

不要发誓,要使用Ncurses

即使我们今天使用的几乎所有应用程序,软件和小工具都具有图形用户界面,但是知道如何使用基于文本的UI也会具有其应用程序和优点。如果您对使用远程服务器或使用功能有限的硬件感兴趣,它将非常有用。上面的资源将使您掌握ncurses的正确方法.

进一步阅读和资源

我们有更多与编码和开发有关的指南,教程和信息图:

  • Mantis Hosting:找出哪些网络托管公司可以提供很好的交易,其中包括该流行的错误跟踪程序.
  • Ubuntu Primer:了解最流行的Linux发行版之一.
  • 面向对象的程序设计:了解各种面向对象的程序设计语言-有些可能会让您感到惊讶.

互联网能在世界末日生存吗?

您是否曾经想过重大灾难会对互联网造成什么影响?查看我们的信息图,互联网能在世界末日生存吗?有可能我们都被摧毁,但互联网将继续存在.

互联网能在世界末日生存吗?
互联网能在世界末日生存吗?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map