如何创建控制台终端
How to create a console terminal?
我可以从哪里开始为我的c++程序创建控制台?
我需要一个最小的控制台来启动和管理控制台应用程序,我需要这个的原因是因为我需要将所有内容打包到一个可执行文件中,并创建和控制我的小环境。
我所说的"控制台"只是指一个终端来运行我的程序,仅此而已,也仅此而已,我不想让我的控制台与底层系统接口,只关心我的控制台应用程序。
所以我的问题是:给定一个c++应用程序或命令行解释器,创建一个能够与该应用程序连接并报告和管理通常输入(std::cout,像铃铛这样的特殊字符,来自用户的文本输入,等等)的终端需要什么技术?
我认为这是一个"一个答案"太大的问题。
这个问题有三个组成部分:
- 从你的代码中运行另一个应用程序。
- 捕获上述应用程序的输出。
- 在控制台类型窗口中显示输出。
我相信至少有1 &对于每种主要类型的平台来说,这2种方法显然是不同的,至少在Windows、Symbian、Linux/Unix类型的平台上是不同的。我相信,在很大程度上,Android平台可以通过与Linux相同的方法实现这一点。
第三部分,除了模拟VT100或ANSI终端的所有复杂性之外(这是非常重要的,因为有大量不同的转义码需要解析和解释,但您可能只需要实现六个左右就可以开始)。
我希望,除了"特定平台的代码",这是一个需要几千行代码的项目,如果你知道从哪里开始(也就是说,你熟悉Linux中的fork(), execl()
等或它们在另一个操作系统中的等同物,并且熟悉重定向,如果stdin
, stderr
和stdout
使用dup2()
和类似的函数,再次保留操作系统的特定名称,你可以在几周内大致工作。如果您对这些东西一无所知,那么您必须首先学习如何使用这些功能。
当然,做终端模拟,比如"在这里画一行文本","在X行插入空行","从这个位置清除屏幕"或"清除剩余行",等等,将需要相当多的工作来覆盖所有不同的变体和选项。特别是如果您希望在可变尺寸的显示器上做到这一点,而不是像原始VT100终端支持的"固定80列和25行"。我假设你已经编写了在OpenGL或OpenVG中绘制基本文本的代码(OpenVG是否支持文本,或者你必须"绘制位图"-我记不清它是如何工作的-我不是在Symbian Graphics中从事文本工作的人之一,所以我从来没有真正关心它是如何工作的)。
- 如何在linux终端中同时编译和运行c++代码
- C++:将控制台输出存储在宏中更好吗
- 终端不会为C++文件创建.exe文件吗
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- C++控制台应用程序阻止退出
- 如何修复此iFile以将.txt输出到控制台
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- 为什么控制台要求输入,即使代码中没有输入
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- 用于窗口的 HID 终端
- 控制台输出在 Qt5 中未正确显示
- C++出现控制台错误.我无法识别源代码的问题
- 独立于平台的方式捕获控制台/终端关闭事件
- 如何用C++编写控制台终端
- C++程序,控制台/终端输出。如何实现"updating text"
- 如何创建控制台终端
- 有没有关于用c++编写控制台/终端应用程序的书?