【发布时间】:2020-01-01 19:29:42
【问题描述】:
作为 curses 库的变体,标头 <ncurses.h> 和 <curses.h> 之间有什么区别?
为什么我更喜欢
#include <ncurses.h>
代替
#include <curses.h>?
我已经搜索了我的 Linux 发行版的不同之处。在我的实现(Linux Ubuntu Pengolin)中,<ncurses.h> 是<curses.h> 头文件的别名文件。所以没有区别。
但为什么不是用两个名字分开呢?
不幸的是,这个问题What's the difference between -lcurses and -lncurses when compiling C using ncurses lib? 的答案并没有解决我的顾虑,因为他们更专注于在调用编译器时添加相应的标志,并且没有解释一般的差异。
【问题讨论】:
-
curses.h更便携。ncurses.h并非在所有系统上都可用。 -
Curses 是 SystemV 中原始库的名称。 NCurses 是该库的开源实现,具有相同的 API。每个实现都会提供它们特定的头文件,例如 ncurses.h、pcurses.h,并且它们会提供一个指向其特定头文件的 curses.h 的符号链接,这样您就不必关心您拥有哪个实现。
-
如果您想要专门实现curses库的NCurses,并且您确信该实现将在目标计算机上可用,您可以使用ncurses.h。如果你只是想要一些 curses API 的实现,请使用 curses.h,它可能由 NCurses 或其他库的实现实现,也可能不实现。
标签: c++ c ncurses difference curses