如何在与 c++ 代码不同的终端中打开程序?
How do i open a program in a separate terminal from c++ code?
我想以编程方式执行以下任务。
- 在C++中,打开一个终端(系统("gnome-terminal");)
- C++, 运行位于某个地方的程序 (./myprogram)
这是我的代码
strcpy(args, "gnome-terminal");
strcpy(args, "-e 'sh ./spout");
strcat(args, "' ");
system(args);
但它在运行时给出了以下错误。
sh: 0: Illegal option -
除了可能还有比通过C++调用终端来执行程序更优雅的解决方案之外,您还可以使用以下解决方案之一:
标准::字符串
最明显的解决方案是使用std::string
它提供了重载运算符+
来连接字符串。
#include <string>
std::string args = "gnome-terminal ";
args += "-e 'sh ./spout";
args += "' ";
标准::字符串流
std::stringstream
是另一种选择:
#include <sstream>
#include <string>
std::stringstream ss;
ss << "gnome-terminal ";
ss << "-e 'sh ./spout";
ss << "' ";
std::string args = ss.str();
strcat()
如果你想使用C字符串,你可以使用这样的东西。请注意,我不建议这样做。
#include <cstring>
strcpy(args, "gnome-terminal");
strcat(args, "-e 'sh ./spout");
strcat(args, "' ");
请注意,第二个版本需要仔细查看为args
分配的内存。有关更多信息,请参阅 strcat()。
相关文章:
- 为什么这不打开程序目录中的文件?
- 命令在终端或程序中提供不同的行为(Python和C )
- 如何在与 c++ 代码不同的终端中打开程序?
- 由于 int 主错误而无法打开程序
- C ATM保存余额重新打开程序
- 从终端打开 Clion
- 如何停止任务运行终端在程序以视觉工作室代码结束后自动退出
- 在终端运行C 程序
- 如何使用 Boost.Process 0.5 运行命令行/终端实用程序
- 为来自终端的程序分配文件路径
- 您如何在通过终端执行程序时获取用户输入器
- 从终端运行C++程序.在同一终端窗口中获取输出
- 用于打开程序的Makefile
- CPP:-1: 错误: C1041: 无法打开程序数据库;无标题-构建-桌面调试\VC120.pdb'
- 使用DOSBox打开C++程序时出现BGI错误
- 如何打开程序与其文件扩展名关联的文件
- VeriFone终端应用程序可以通过以太网进行通信,还可以存储本地数据
- 如果从终端终止程序,打开的ofstream对象会发生什么
- Ubuntu -从终端打开.txt文件的问题
- 程序如何在重新打开程序后创建文件并知道文件的路径(由用户随机指定)?