• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ncurses<a name="ZH-CN_TOPIC_0000001106844024"></a>
2
3- [简介](#section11660541593)
4- [目录结构](#section367519246426)
5- [编译构建](#section137768191623)
6- [许可证](#section126611612164217)
7
8## 简介<a name="section11660541593"></a>
9
10ncurses是一个编写文本界面(TUI)的接口库。是一个用于控制终端屏幕输出和输入的库,可以用于创建交互式的命令行界面,它提供了一系列函数来控制终端的光标位置、颜色、文本输出等。使用 ncurses 库需要先初始化,然后使用各种函数来控制终端的输出和输入。它的主要接口和功能包括
11- initscr(): 初始化curses模式,返回一个指向标准屏幕指针。
12- endwin(): 退出curses模式,恢复终端的正常状态。
13- addch(): 在当前光标位置添加一个字符,并更新光标位置。
14- addstr():在当前光标位置添加一个字符串,并更新光标位置。
15- getch(): 从键盘获取一个字符,并返回其ASCII码或键值。
16- move(): 移动光标到指定的行和列位置。
17- refresh(): 将虚拟屏幕上的内容复制到物理屏幕上,并刷新显示。
18- clear(): 清除虚拟屏幕上的内容,并将光标移动到左上角。
19
20
21在Openharonmy引入后,在lldb构建中开启编译可选依赖选项LLDB_ENABLE_CURSES,lldb.so会依赖ncurses编译生成的动态库ncurses.so,最终实现lldb调试器命令行调试时自动补齐和gui功能。
22## 目录结构<a name="section367519246426"></a>
23```
24- Ada95
25- c++
26- doc
27- form
28- include
29- man
30- menu
31- misc
32- ncurses
33- package
34- panel
35- progs
36- test
37- aclocal.m4
38- ANNOUNCE
39- announce.html.in
40- AUTHORS
41- config.guess
42- config.sub
43- configure
44- configure.in
45- COPYING                              版权文件
46- dist.mk
47- INSTALL
48- install-sh
49- Makefile.in
50- Makefile.os2
51- MANIFEST
52- mk-0th.awk
53- mk-1st.awk
54- mk-2nd.awk
55- mk-hdr.awk
56- NEWS
57- OAT.xml                          OAT.xml过滤配置文件
58- README
59- README.emx
60- README.MinGW
61- README.OpenSource                 项目README.OpenSource文件
62- README_zh.md                      中文说明
63- TO-DO
64- VERSION
65```
66## 编译与安装<a name="section137768191623"></a>
67
68### 单项目模式运行<a name="section1771013213818"></a>
69
70```
71- ./configure:用于配置软件的脚本,会根据系统环境检测和设置一些变量,生成对应的Makefile和一些头文件。其中运行configure脚本的时候指定一些参数来改变配置选项,如--prefix指定安装目录,--libdir指定库文件目录,--bindir指定可执行文件目录。
72- make: 用于安装ncurses软件,根据Makefile中的规则执行一系列的操作,编译源代码,运行测试,检查外部依赖等。
73- make install: 将编译好的ncurses.so文件安装到配置时指定的目录中。
74```
75
76
77
78## ncurses使用文档
79官方文档  https://invisible-island.net/ncurses/ncurses.html
80
81
82## 许可证<a name="section126611612164217"></a>
83
84本项目遵从MIT许可证。
85