OS X 中的 C++ spawn shell

标签 c++ macos shell terminal

如果有这样的问题被询问和回答,我很抱歉;我环顾四周,但没能找到任何东西。

我是 C++ 的 super 新手,我在 XCode 中创建了一个从 GUI 应用程序调用的命令行二进制文件。命令行二进制执行 shell 脚本。 (在你说什么之前,是的,我已经意识到这是一个不必要的事件链,但不幸的是,它必须是这样的。)所以操作顺序是 GUI -> 二进制 -> shell 脚本。一切运行良好,除了没有输出可言。我想以某种方式,以某种方式产生一个终端,并将在 shell 脚本中执行的命令的输出回显到终端。这在 C++ 中有可能吗?

非常感谢您的帮助!

最佳答案

我设法让终端运行ls:

#include <stdlib.h>

int main() {
  system("open -a Terminal /bin/ls");
  return 0;
}

至于调用可执行文件的GUI,正常的架构是将可执行文件的核心逻辑放在一个共享库中。这样一来,GUI 和命令行程序都可以通过链接库来获得所需的功能。

关于OS X 中的 C++ spawn shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12548498/

相关文章:

linux - 检查使用的分区是什么?

c++ - 使用 IMFSourceReaderCallback 检测 USB 摄像头断开连接

ios - 是否可以在不询问用户的情况下注册 CKSubscription 推送通知?

linux - "cd"在 shell 脚本中不起作用

excel - 将嵌入的 Word 文档另存为 PDF

node.js - 如何在 mac 上杀死 nodemon 进程?

linux - 如何获取bash脚本中除options之外的变量?

c++ - 为什么当我将数组换成 vector 时这段代码不再有效?

c++ - 如何在 Qt 中更改 QCheckBox 文本标签颜色?

c++ - 逐行从文本文件中读取数据,在 C++ 中用多个定界符分隔