我试图为已经在控制台中的程序创建一个单独的控制台窗口。我将如何打开这个新的控制台窗口,然后输出到该特定控制台?
我找到了使用“ cconsolelogger”在Windows中工作的方法,但不适用于Linux。
答案 0 :(得分:2)
我认为“新控制台”是指终端仿真器窗口。
终端是一个与任何其他程序一样的程序,因此您可以像其他任何程序一样启动它。在C ++中打开另一个程序的唯一标准方法是std::system
,它执行shell命令。这是打开终端仿真器的示例:
std::system("xterm");
请注意,将任意用户提供的输入传递给命令是不安全的,因为它容易受到shell注入的攻击。</ p>
POSIX标准(通常为Linux操作系统所遵循)提供了其他较低级别的工具来运行另一个可执行文件。特别是exec
系列函数允许执行另一个程序而无需启动子进程,也不需要使用Shell。
答案 1 :(得分:0)
也许您可以使用popen
。
您可以选择要向其中写入命令的程序,例如:
gp = _popen("C:\Program Files (x86)\gnuplot\bin\pgnuplot.exe", "w");
fprintf(gp, "set term png\n");